javascript - 如何使用 window.open() 限制在 Javascript 中打开的选项卡数量
问题描述
我有一个简单的页面,上面有一个按钮,这个按钮后面有代码,它将在网络浏览器中打开一个新页面/选项卡。我将以 google.co.uk 为例。
window.open("www.google.co.uk");
这很好用!
但我想知道是否有可能,一旦它被点击并且新标签打开,有没有办法让它不能被点击?如果该新选项卡随后关闭,那么您可以重新单击它吗?
(只是为了限制人们不要继续点击它并打开多个标签)
谢谢!
解决方案
我有一个解决方案,但如果您希望计数器在刷新时保持不变(让我知道,我将编辑我的答案),您将不得不修改它。我的解决方案是添加一个每次单击按钮时增加一的变量,然后检查它是否超过了一个值:
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,然后,在每次单击按钮后,它会增加计数器并检查它是否大于同时单击的最大次数。之后,它会根据它(计数器)是否大于最大数量来执行您想要执行的任何操作。
推荐阅读
- if-statement - Power BI-DAX measure-Table Condition 基于多个 if
- reactjs - 为什么 Express GET 请求返回 HTML?
- macros - 如何将 tiddlywiki 小部件的输出作为输入传递给宏?
- c++ - 仅当内存地址不变时才重新分配
- excel - Excel 公式:返回真假值的范围
- python - 由于“AttributeError:‘NoneType’对象没有属性‘properties’”,Kivy 程序无法运行
- javascript - 在我输入后,我的数据被接收为空
- haskell - Haskell,用 foldr 实现任何功能
- neural-network - 如何使用一条 ROC 曲线评估多重测试
- javascript - 警告:使用 auth0 登录时,无法对未安装的组件执行 React 状态更新