2013-10-04 45 views
1

下面的JavaScript代码片段完美运行于谷歌Chrome,但在Firefox上第二警报之前不会继续:的JavaScript在Firefox意外停止执行上一个onchange分配

init.js

function __init__() { 
    alert("welcome!"); 
    document.getElementById("myselector").onchange = foo; 
    alert("must go here"); 

    // some other initialization code goes here 

    alert("must end here"); 
} 

window.onload = __init__; 

foo.js

function foo() { 
    // some other code for function foo 
    break; 
    // the rest of the code 
} 

然而,Firefox或Chrome的开发者工具控制台没有报告错误,让我感到沮丧的日子。

+0

由于懒惰而发出警报而不是'console.log'语句。对不起,关于这一点:P –

+1

*“Firefox或Chrome的开发工具控制台没有报告错误,但让我感到沮丧的日子。”*上面的代码,是的,有:Chrome说*“Uncaught SyntaxError:非法中断声明”*。 Firefox说*“SyntaxError:未标记的break必须在循环或开关内*”。我非常有兴趣看到你声称的代码失败了,因为我怀疑这个错误是被你的页面/应用程序中的其他代码拦截和压制的。 –

+0

对不起,我没有在发布前测试代码(因为懒惰和不负责任)。实际的代码被分成多行,每行有数百行。不知道为什么Firefox或Chrome对此保持沉默。 –

回答

1

删除任何break语句,但不在循环内使用它或switch语句。