我有一个包含target="_blank"
锚点的iFrame。我想在新窗口打开后在iFrame中运行一些JavaScript。
我尝试在锚点的setTimeout(/*my js to run*/, 0)
事件中使用onclick
。它适用于Chrome,但不适用于Firefox。在setTimeout中放入100毫秒的延迟似乎解决了Firefox的这个问题,但这个解决方案看起来不太干净。
在新窗口中打开链接后,是否有标准方式运行js代码?
编辑一些说明:我想要运行的js触发页面刷新。如果我将它直接放在onclick事件中,则锚点链接不会打开,因为onclick事件发生在之前。这就是我需要在新窗口打开后运行js代码的原因。
第二次修改我可以访问第一页和弹出窗口,但不能访问该链接的目标。
答案 0 :(得分:1)
如果您需要刷新并在新窗口中打开链接,您需要像这样的
这样的setTimeout内联:
<a href="popup.html" id="pop" target="_blank">Click</a>
更好:
function reload() {
setTimeout(function() { location.reload(1);},10);
}
window.onload=function() {
document.getElementbyId("pop").onclick=reload;
}
使用
window.onload=function() { opener.reload(1); }
您是否可以访问弹出窗口中的页面,它是否与iFrame的原点相同,是否与父页面的原点相同?然后你可以使用弹出页面的onload事件:
_mm256_pow_pd
答案 1 :(得分:0)
将onReady或onLoad挂钩添加到正在加载的页面中。然后,&#34;在新窗口打开后#34; JavaScript将运行。如果您需要影响父窗口,请在弹出窗口中的JavaScript中使用window.opener
。