首页 > 解决方案 > 如何防止 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");
      }
    }

标签: javascriptp5.js2d-games

解决方案


为了防止一个窗口打开超过一次,你可以指定一个窗口名称(第二个参数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 窗口。


推荐阅读