определить из какого окна пришло 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, время: 06:08. |