首页 > 解决方案 > 如何使用 window.open() 限制在 Javascript 中打开的选项卡数量

问题描述

我有一个简单的页面,上面有一个按钮,这个按钮后面有代码,它将在网络浏览器中打开一个新页面/选项卡。我将以 google.co.uk 为例。

window.open("www.google.co.uk");

这很好用!

但我想知道是否有可能,一旦它被点击并且新标签打开,有没有办法让它不能被点击?如果该新选项卡随后关闭,那么您可以重新单击它吗?

(只是为了限制人们不要继续点击它并打开多个标签)

谢谢!

标签: javascriptbrowser

解决方案


我有一个解决方案,但如果您希望计数器在刷新时保持不变(让我知道,我将编辑我的答案),您将不得不修改它。我的解决方案是添加一个每次单击按钮时增加一的变量,然后检查它是否超过了一个值:

let count = 0
const eventListener = () => ((count += 1) < 10/*your max # of clicks*/) ? alert('max # of clicks')/*whatever you want to do*/ : window.open('www.google.co.uk')

或者,如果您使用的是 HTMLonclick属性,并且希望它全部位于一行:

<button onclick="(((window.count || window.count = 0) += 1) < 10/*your max # of clicks*/) ? alert('max # of clicks')/*whatever you want to do*/ : window.open('www.google.co.uk')">Open google</button>

此 javascript 将 count 变量设置为 0,然后,在每次单击按钮后,它会增加计数器并检查它是否大于同时单击的最大次数。之后,它会根据它(计数器)是否大于最大数量来执行您想要执行的任何操作。


推荐阅读