【发布时间】:2017-04-22 01:09:53
【问题描述】:
我试图从他的父母那里捕获 iFrame 的 onHashChange 事件,但没有成功。
所以基本上我在做:
index.html - 方法 1:
iframeEl = document.getElementById('myiframeid');
iframeEl.addEventListener('hashchange', function() {
alert('hash changed')
}, true);
index.html - 方法 2:
iframeEl = document.getElementById('myiframeid');
iframeEl.onhashchange = function() {
alert('hash changed')
};
无论如何,当我尝试从他的父级捕获 iframe 事件时,这些方法都不起作用,尽管如果我尝试从 iframe 内部运行以下代码:
window.addEventListener('hashchange', function() {
alert('hash changed')
}, true);
或
window.onhashchange = function() {
alert('hash changed')
};
这两种方法都可以。
问题是:我需要从 iFrame 外部捕获 hashchange 事件。
有人知道如何处理吗?
仅供参考:jQuery 不是一个选项。
提前致谢。
【问题讨论】:
-
您需要
IframeElement.contentWindow.document或IframeElement.contentDocument。第一个是向后兼容的。chage事件需要附加到作为IframeElement.contentDocument一部分的特定元素。 -
您好,感谢您的回答,不幸的是它没有工作。我用两种方法(上面)尝试了你的两个建议,但什么也没发生。您是否介意将您的想法放入 fiddlejs 或类似的东西中?谢谢
-
两个页面是否在同一个域中?
-
是的!他们是。实际上两者都是本地主机。 :)
-
哦,那是
onchashchage。等等。
标签: javascript html events iframe hashchange