javascript - 如何防止 window.open 函数多次打开一个窗口?返回函数?
问题描述
使用 JavaScript (p5.js, p5.play) 制作一个游戏,一旦用户收集了所有的精灵对象(存储在food
数组中),它将显示一个文本(在本例中为这个表情符号)并打开一个窗口导致另一个网页。这里的问题是大多数浏览器都有弹出窗口阻止程序,理想情况下希望用户单击附加到网页链接的表情符号,打开一个新窗口。试过用.onclick
还是不行。。。
现在发生的情况是,当我返回游戏的网页时,它不断弹出一个新窗口。有针对这个的解决方法吗?
编辑代码的原始链接在这里;https://glitch.com/edit/#!/kitschen-dreams Sketch.js 文件中的第 53 行
if (food.length > 0) {
text(score, width / 2, height / 2);
} else {
var kitschenDreams = text("", width / 2, height / 2);
// kitschenDreams.onclick = window.open("http://kitschendreams.tumblr.com");
// window.open("http://kitschendreams.tumblr.com");
}
}
解决方案
为了防止一个窗口打开超过一次,你可以指定一个窗口名称(第二个参数Window.open()
):
A DOMString specifying the name of the browsing context (window, <iframe> or
tab) into which to load the specified resource; if the name doesn't indicate an
existing context, a new window is created and is given the name specified by
windowName.
具有相同窗口名称的连续调用会重新使用之前的 openend 窗口。
推荐阅读
- swift - 如果 UITextField 被隐藏,则重置 UILabel 左侧的字符
- python - Python中的枕头不会让我打开图像(“超过限制”)
- html - 一个垂直的 div,左右两边都有一个图像模式
- bash - 当talker从启动运行时,master上没有收到消息
- vue.js - VueJs v-if 阻止实时通知
- sql - SQL 数据库 - PK 和 FK
- php - Laravel:发送带有输入数据的电子邮件
- php - 允许的内存大小 134217728 字节用尽(试图分配 20480 字节) Laravel
- ionic3 - Ionic 3 - 带幻灯片的主页按钮
- mysql - 将行转换为列 mysql NO sum or Total or value