【问题标题】:Javascript game popup windowJavascript游戏弹出窗口
【发布时间】:2014-06-29 17:57:42
【问题描述】:

在我的程序中,用户在一段时间后被 JavaScript 游戏(蛇游戏)打断。当用户完成时,弹出窗口(蛇游戏)将自行关闭。该代码将在游戏中。

在用户完成游戏之前,我需要弹出窗口位于顶部。在这里,用户能够避免弹出窗口(通过单击弹出窗口之外的任何位置)并返回到父网页。我需要用户继续玩游戏,直到他/她完成游戏。有没有办法我可以做到这一点?

请仅包含带有 JavaScript 的建议。

<html>
<head>
<title>test</title>
<script>
function popup(){
      var snakeGame
      setInterval(function(){
        snakeGame = window.open('snake.html', "_blank", "toolbar=0, titlebar=0, location=0, scrollbars=0, statusbar=0, status =yes, menubar=0, top=500, left=500, width=550, height=380").focus();
      },5000);
    }
</script>
</head>

<body>
  <p>Web page content</p>
  <body onload="popup()">
</body>
</html>

【问题讨论】:

  • 这种弹出窗口不可能。感谢上帝,我可能会补充。
  • 将“完成贪吃蛇游戏”替换为“为色情付费”,你就会明白如果这可能会是多么糟糕。
  • 与您的问题无关,但您应该摆脱第二个&lt;body&gt; 标签

标签: javascript html popupwindow


【解决方案1】:

我建议创建一个 CSS 弹出窗口,该弹出窗口在用户完成游戏之前不会消失。 (创建一个不可关闭的弹出 window 是不可能的。)

您可以访问 https://stackoverflow.com/a/19065024/2930268 以查看 CSS 灯箱的示例。

您只需在用户完成游戏时通过 document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none' 使盒子自行关闭。

我希望这会有所帮助!

【讨论】:

  • 这与此答案无关,但您能否停止进行修改以修复某些内容的拼写?他们并没有真正改善帖子。
【解决方案2】:

考虑使用 iframe 灯箱而不是打开新窗口。这样两者都出现在同一个浏览器窗口中。

大多数预先编写的灯箱脚本应该具有在调用函数之前不关闭的选项。

灯箱演示:http://digitarald.de/project/squeezebox/1-1/showcase/iframed/ - 这个使用 mootools 运行,但还有很多其他库(可能是独立的 javascript 库)

(另外,请注意,如果有人知道他们在做什么,客户端代码总是可以作弊的)

此外,在您当前的系统中,您始终可以在关注父窗口和子窗口时运行脚本。如果有人在未赢得游戏的情况下点击父项,您可以显示一条消息,要求他们必须返回游戏。

这应该为您提供获取此类变量所需的信息:

Is there a way to detect if a browser window is not currently active?

【讨论】:

    【解决方案3】:

    这会将窗口置于所有其他窗口的顶部,直到用户关闭它(或者在您的情况下完成游戏)。

    <body onblur="self.focus();">
    

    但请记住,用户的一些技巧(他们必须知识渊博)可能会禁用此“始终处于领先地位”的功能。

    编辑:对于您正在尝试做的事情,CSS 灯箱可能是一个更好的解决方案,但如果您坚持使用 Windows,这应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-23
      • 2014-12-26
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2013-01-09
      相关资源
      最近更新 更多