firefox window.onerror事件问题 - 警报“脚本错误!”只有

问题描述:

我使用window.onerror来提醒javascript错误进行调试。firefox window.onerror事件问题 - 警报“脚本错误!”只有

window.onerror = function(msg, url, line) { 
    alert(msg + '\nLine: ' + line); 
}; 

当一个错误被触发时,它可以在IE中提醒这个实际的错误信息。但在Firefox中,它只是提醒“脚本错误!”,但我仍然可以在firefox的错误控制台中看到实际的错误消息。

我记得几个月前,当我在另一个项目上工作时,firefox没有这样工作。但我目前无法获得该项目的代码。所以我想知道这有什么可能的问题?

我现在知道答案了。在我将文件上传到web服务器(实际上是localhost)后,通过http://localhost/path/to/the/file.html访问它,window.onerror事件按预期工作(如在IE中,提醒实际的错误消息而不是“脚本错误”)。但通过file:/// D:/path/to/the/file.html

在本地访问文件时,它不起作用无法弄清楚原因?

+0

默认情况下,IE不会从文件系统的文件上运行JavaScript。打开Internet选项 - >高级 - >'从我的电脑运行活动内容'以在文件系统上进行测试,或者添加“网络标记”。 http://msdn.microsoft.com/en-us/library/ms537628%28VS.85%29.aspx – bobince 2010-04-18 23:44:56

+0

是的,可能与安全设置有关。但是,无论“从我的电脑运行活动内容”处于打开还是关闭状态,IE始终都会提示实际的错误消息。但火狐只是提醒“sxript错误”,而不是本地文件系统上的文件的实际错误消息。 – powerboy 2010-04-19 00:25:44

+0

适合我。让我们有一个完整的测试案例。 – bobince 2010-04-19 08:33:51

window.onerror(function(msg, url, line) { 

你的意思是:

window.onerror= function(msg, url, line) { 
+0

对不起,这是一个错字。 – powerboy 2010-04-18 21:49:19

您需要确保您的脚本所服务的域与您的页面域相同。如果两者相同,你应该能够得到正确的文件名和行号。

检查了IE8,FF 3.6和Chrome 10 beta秒前。