在新标签页和超时中打开网页

时间:2017-01-04 09:34:50

标签: javascript

我想知道,当我在其他标签页或窗口中打开网页时,setTimeout,setInterval以及在加载DOM时触发的其他函数会发生什么。一旦我真正看到网页,它们会触发吗,或者即使在后台加载DOM也会触发它们?这在不同的浏览器上有所不同吗?

1 个答案:

答案 0 :(得分:1)

至少在Chrome和Opera中,即使页面在后台加载,也会执行回调

考虑以下HTML

<a href="javascript:openWindow()">Click me!</a>

和相应的JavaScript

function openWindow()
{
    var article = open('');
    focus();

    article.setTimeout(function(){ article.alert("Hello"); }, 3000);
}

(见this fiddle)。

如果您点击按下Ctrl键的链接,Chrome会打开一个新的背景标签。 3秒后仍显示alert。在Opera中也可以观察到相同的情况。我也尝试过Edge,但它不会在后台标签中打开页面,因此我无法判断JS是否仍然会被执行。