如何在同一HTML页面的每个新打开的选项卡或窗口中启动JavaScript功能



我有一个html页面SomePage带有onload事件:

<body onload="someEvent()">

我用someEvent函数附加到SomePage js文件:

function someEvent()
{
someFunction();
}

当我打开SomePage时,someEvent函数在第一个选项卡中启动。但当我在新选项卡中打开SomePage时,它不会启动。如何在同一页面的每个新打开的选项卡或窗口中重新启动js函数?

更新:

当我在Visual Studio中以JavaScript调试模式运行somePage并在someEvent函数中设置断点时,调试器只在第一个打开的选项卡中打断它,当我打开第二个选项卡时,调试器不会打断它。因此,我决定,我的函数没有在第二个选项卡中刷新。在您的回答之后,我意识到这不是JavaScript问题,我之前的示例工作正确,只是在新打开的选项卡中没有断点。谢谢您的帮助。

只要加载相同的页面,它就应该在每个选项卡中工作。您可以通过在onLoad回调函数中进行警报调用来进行测试。

<body onload="someEvent()">
<script>
function someEvent()
{
alert('hi');
}
</script>

我们可能需要更多信息。如果你只是在一个单独的选项卡上访问SomePage,那么第一个选项卡中发生的任何事情都应该发生在第二个选项卡中。如果你不是这样做的,那么下一个选项卡将由第一个选项卡打开,这就是我们需要更多信息的地方。

如果我需要在加载时做一些事情,我通常会在javascript文件中设置以下内容,并通过<script src="/path/to/file">将其链接到我的html页面

window.addEventListener("load", () => {
runFunctionAfterLoaf();
});

尝试使用

window.onload = function() {
someFunction();
};

最新更新