gpt4 book ai didi

javascript - anchor 链接打开后运行 javascript

转载 作者:行者123 更新时间:2023-11-27 23:56:44 25 4
gpt4 key购买 nike

我有一个 iFrame,其中包含带有 target="_blank" 的 anchor 。我希望在新窗口打开后在 iFrame 中运行一些 JavaScript。

我尝试在 anchor 的 onclick 事件中使用 setTimeout(/*my js to run*/, 0) 。它可以在 Chrome 中运行,但不能在 Firefox 中运行。在 setTimeout 中设置 100 毫秒的延迟似乎可以解决 Firefox 的这个问题,但这个解决方案看起来不太干净。

在新窗口中打开链接后是否有标准方式运行js代码?

编辑一些说明:我想要运行的js会触发页面刷新。如果我直接将其放在onclick事件中,则 anchor 链接不会打开,因为onclick事件发生在之前。这就是为什么我需要在新窗口打开后运行js代码。

第二次编辑我可以访问第一页和弹出窗口,但不能访问链接的目标。

最佳答案

如果您需要刷新并在新窗口中打开链接,您确实需要像这样的 setTimeout

内联:

<a href="popup.html" target="_blank" 
onclick="setTimeout(function() { location.reload(1);},10)">Click</a>

更好:

<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;
}
<小时/>

您是否有权访问弹出窗口中的页面,它是否与 iFrame 同源?是否与父页面同源?然后就可以使用弹出页面的onload事件了:

window.onload=function() { opener.reload(1); }

关于javascript - anchor 链接打开后运行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com