2012-08-02 167 views
3

我想寫一些JavaScript,當他們離開頁面時詢問用戶,如果他們想填寫一份調查(不過這可能是煩人的!)。我認爲我的解決方案是通過本網站上的答案找到的。這是我目前看起來似乎沒有工作的代碼:與onUnload掙扎

<script language="javascript"> 

function comfirmsurv() { 

var ConfirmStatus = confirm("We would love to receive your feedback on your experience of this page. Would you like to complete our short survey?"); 

if (ConfirmStatus == true) { 

window.open("#"); 

} 
else 
{window.close();} 
} 
} 
window.onUnload=confirmsurv() 

</script> 
<body> 
Test 
</body> 

任何幫助,非常感謝。

回答

4

要指定調用該函數,而不是函數本身的結果:

window.onunload = confirmsurv; // Note no() 

其他一些問題:

  1. JavaScript是大小寫敏感的,你之後的屬性是「onunload的「,而不是」onUnload「。
  2. 該函數的名稱是「comfirmsurv」,但您正在分配「confirmsurv」
  3. window.close():您只能關閉打開的窗口,而不打開其他窗口。
  4. 還有一個額外的}
  5. 爲腳本元素的語言屬性已棄用了十多年中,類型屬性是必需的,使用type="text/javascript"
+0

type =「text/javascript」也被棄用。實際上它只存在於舊的IE版本中。 – devundef 2012-08-02 11:19:41

+0

哇。我會穿上我的大衣。非常感謝你的幫助。 – user1571012 2012-08-02 11:22:43

+0

爲什麼在我的頁面打開時顯示確認框,而不是關閉? – user1571012 2012-08-02 12:59:31

0

卸載屬性被錯誤地規定爲onUnload代替onunload。此外,代碼在這裏和那裏都有太多的錯誤。

瀏覽器的控制檯日誌提供了一個日誌,您可以使用該日誌查找錯誤原因。

這裏是固定的腳本。

<SCRIPT> 
function confirmsurv() { 

    var ConfirmStatus = confirm("We would love to receive your feedback on your experience of this page. Would you like to complete our short survey?"); 

if (ConfirmStatus == true) { 
    window.open("#"); 
} else { 
    window.close(); 
} 

} 

window.onunload=confirmsurv; 
</SCRIPT> 
+0

非常感謝。我剛剛開始通過在線教程學習。 雖然這個腳本仍然對我的頁面沒有任何幫助。確認框根本不會出現... – user1571012 2012-08-02 11:19:36

+0

Sorted。謝謝。 – user1571012 2012-08-02 11:25:25