在我的程序中,用户在一段时间后使用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>
答案 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,这应该会有所帮助。