当我的iframe加载时,我需要父页面加载不同的内容(页眉,页脚),而iframe仍然存在。我添加到iframe:
window.top.location = "http://mysite.com";
它加载新的父页面,但一遍又一遍地重新加载。 如何只启用一个load / iframe加载或某种解决方案。
我试过
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
但它什么也没做。
谢谢。
答案 0 :(得分:0)
你只是在不重新加载iframe的情况下才能重新加载iframe父级!如果要更改父页面中的某些内容,则必须使用父页面中的javascript而不是iframe来执行此操作。 如果您想要捕获“iframe加载事件”,您必须从iframe内部执行此操作。看起来像是一个不可能的情况,但你仍然可以做到!
您需要让iframe和父页面通信,并且您可以使用html5 postmessage(即使父和iframe位于不同的域中也能正常工作!)。如果您还需要兼容IE7,则可以使用easyXDM javascript库而不是postMessage,只需在其网站中搜索。
当触发jQuery(document).ready()
(或任何类似事件)时,只需从iFrame执行postMessage,父页面必须有一个等待此消息的列表器,以触发页眉/页脚/任何更改事件。