setTimeout() 无法打开新 url

setTimeout() isn't working to open new url

我正在尝试以不同的时间打开新的 URL,但它不起作用

<script type="text/javascript">
setTimeout(function() {window.location="http://google.com";}, 2000);
setTimeout(function() {window.location="http://youtube.com";}, 5000);
</script>

这个脚本只能打开第一个link。 有什么想法吗?

执行第一行后,您将被重定向到 http://google.com。此时您的页面已更改,您为 youtube.com 编写的脚本不会出现在该页面上,因为这是一个新页面。

window.location 将设置您从中执行此脚本的浏览器 window 的路径。在这种情况下,您导航到 http://google.com,然后您的第二个超时将永远不会执行。

为了解决这个问题,您可以尝试在不同的选项卡或 window 中使用 window.open_blank 参数打开 URL。

<script type="text/javascript">
setTimeout(function() {window.open("http://google.com", "_blank")}, 2000);
setTimeout(function() {window.open("http://youtube.com", "_blank")}, 5000);
</script>

您可以(生成)在新标签页中打开链接。

注意:选项卡不会在此嵌入的代码段中打开,因为沙盒不允许弹出窗口。

// Adapted from: 
const openTab = (href, target = '_blank') => {
  const link = Object.assign(document.createElement('a'), { href, target });
  document.body.append(link);
  link.click();
  link.remove();
  console.log(`Opening: ${href}`);
}

setTimeout(() => openTab('http://google.com'), 2000);
setTimeout(() => openTab('http://youtube.com'), 5000);