определить из какого окна пришло postmessage
Если на странице несколько iframe, как кроссбраузерно определить какое из них отправило сообщение?
|
_axl,
Передать вместе с сообщением имя окна(фрейма) |
А если у меня фрейм подгрузил новую страницу или обновил старую, как быть? Postmessage дважды получает данные. Не знаю, как избавиться от этого.
|
Цитата:
|
<iframe id="abc" name="abc" src="/frame.html" onload="FrameManager.registerFrame(this)"></iframe>
var FrameManager = {
registerFrame : function(frame){
pm({
target: window.frames[frame.id],
type: "register",
data: {id:frame.id},
url: frame.contentWindow.location
});
pm.bind(frame.id, function(data) {
console.log(data)
});
}
};
|
Цитата:
var iframes = parent.document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
if (iframes[i].contentWindow == window) alert(iframes[i].id);
}
|
Цитата:
|
Цитата:
|
_axl,
Цитата:
для этого каждому фрейму нужно прописать name Можно прописать name идентичное ID Цитата:
|
Цитата:
а если вставлять в обычный iframe ссылку на документ с этим кодом, то работать не будет, я проверил Не Id a window.name для этого каждому фрейму нужно прописать name Можно прописать name идентичное ID Цитата: <iframe id="iframe000" name="iframe000" src="ссылка"></iframe> <iframe id="iframe001" name="iframe001" src="ссылка"></iframe> ... Во фрейме считываем window.name действительно работает, жаль что я весь день потратил чтобы свой велосипед написать |
| Часовой пояс GMT +3, время: 14:33. |