Обмен данными между окнами в браузере [дубликат]

Это супер-пупер kludgy, но каким-то классным способом, поэтому я просто брошу его в кольцо:

GIT_EDITOR='f() { if [ "$(basename $1)" = "git-rebase-todo" ]; then sed -i "2,\$s/pick/squash/" $1; else vim $1; fi }; f' git rebase -i foo~5 foo

Перевод: предоставить новый «редактор» для git, который , если редактируемое имя файла git-rebase-todo (приглашение интерактивной переадресации) изменяет все, кроме первого «выбрать» на «сквош», а в противном случае порождает vim, так что когда вам будет предложено отредактировать сжатое сообщение фиксации, вы получить vim. (И, очевидно, я раздавил последние пять коммитов на ветке foo, но вы можете изменить это, как вам нравится.)

Я, вероятно, сделаю то, что предложил Марк Лонгэй .

34
задан Kunal Vashist 22 February 2012 в 13:01
поделиться

2 ответа

Если у вас нет контроля над фрейм-сайтом, вы не можете обойти междоменную политику.

Если у вас есть контроль над обоими сайтами, вы можете использовать postMessage для передачи данных в разных доменах. Очень простой пример:

// framed.htm:
window.onmessage = function(event) {
    event.source.postMessage(document.body.innerHTML, event.origin);
};

// Main page:
window.onmessage = function(event) {
    alert(event.data);
};

// Trigger:
// <iframe id="myframe" src="framed.htm"></iframe>
document.getElementById('myframe').contentWindow.postMessage('','*');
46
ответ дан Rob W 28 August 2018 в 06:06
поделиться

В событии Internet Explorer 8, переданном как параметр, может быть null, поэтому вам нужно получить доступ к событию другим способом:

В файле frame.html:

window.onmessage = function(event) {
   var evt = evt || window.event;
   evt.source.postMessage('Message from iFrame', evt.origin);
};

На main.html:

window.onmessage = function(event) {
   var evt = evt || window.event;
   alert(evt.data);
};

Событие запускается так же, как и Rob W:

document.getElementById('frameId').contentWindow.postMessage('message','*');
3
ответ дан Przemek Marcinkiewicz 28 August 2018 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: