1
主窗口正在接收來自其內嵌的iframe的消息。如何獲得發佈給定消息的iframe的引用?
window.addEventListener("message", function(e){
alert(e.data);
}, true);
如何知道消息來自哪個DOM元素?問題是我在文檔中有幾個,它們都來自同一個域,但與主窗口不同。
主窗口正在接收來自其內嵌的iframe的消息。如何獲得發佈給定消息的iframe的引用?
window.addEventListener("message", function(e){
alert(e.data);
}, true);
如何知道消息來自哪個DOM元素?問題是我在文檔中有幾個,它們都來自同一個域,但與主窗口不同。
在消息傳遞代碼(或其他)的Firefox實現中,事件對象具有可以檢查的「uri」和「domain」屬性,以及引用原始window
對象的「source」屬性。
window.addEventListener("message", function(e){
var frames = window.frames;
for (var i = 0; i < frames.length; ++i)
if (frames[i] === e.source) {
// found it ...
}
}
我覺得鉻這個東西有一個長期持久的bug,源屬性是undefined。 – rsk82 2011-05-18 21:58:37
是的,剛剛確認它與13.0.767.1.dev-m。有了這個錯誤,發送消息的整個想法就失去了意義。 – rsk82 2011-05-18 22:51:33
那麼,你仍然可以檢查域和URI,並且沒有什麼能阻止其他窗口在事件數據中傳遞對自己(或標識符或其他)的引用。 – Pointy 2011-05-18 23:14:55