2014-06-29 218 views
0

在我的程序中,用戶在JavaScript遊戲(蛇遊戲)一定時間後中斷。當用戶完成時,彈出窗口(蛇遊戲)將自動關閉。該代碼將在遊戲中。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> 
+4

這種彈出不可能。感謝上帝,我可以補充。 – Amberlamps

+2

用「支付色情」替換「完成蛇遊戲」,你會明白爲什麼這可能會是可怕的。 – Quentin

+1

與你的問題無關,但你應該擺脫你的第二個''標籤 – Gary

回答

3

我建議建立一個CSS彈出直到用戶完成遊戲不會消失。 (創建一個非可關閉彈出窗口是不可能的。)

您可以訪問https://stackoverflow.com/a/19065024/2930268看到CSS燈箱的例子。

當用戶通過執行document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'完成遊戲時,您只需將其自行關閉即可。

我希望這有助於!

+0

這與這個答案無關,但是你能否停止編輯修復某些東西的拼寫?他們並沒有真正改善這個職位。 – tbodt

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?

0

這將把窗口放在所有其他窗口的頂部,直到用戶關閉它(或在您的情況下完成遊戲)。

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

但請記住,用戶的一些技巧(他們必須是相當有知識的)可以禁用這種「永遠在上面」功能。

編輯:對於你想要做的,CSS燈箱可能是一個更好的解決方案,但如果你堅持到Windows,這應該有所幫助。