Javascript游戏弹出窗口

时间:2014-06-29 17:57:43

标签: javascript html popupwindow

在我的程序中,用户在一段时间后使用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>

3 个答案:

答案 0 :(得分:3)

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

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

当用户完成游戏时,您只需要自己关闭该框{{1 }}

我希望这有帮助!

答案 1 :(得分:1)

使用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?

答案 2 :(得分:0)

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

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

但请记住,用户的一些技巧(他们必须相当了解)可以禁用此功能,并且始终排在最前面#34;功能。

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