2012-08-02 171 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