【问题标题】:Prototype swallows javascript errors (Firefox)原型吞下 javascript 错误 (Firefox)
【发布时间】:2011-10-09 07:08:46
【问题描述】:

嘿,我对原型很陌生。 问题是 dom:loaded 回调函数中的 javascript 错误不会显示在 firefox (webconsole/errorconsole/firebug) 中。
示例 1:

document.observe("dom:loaded", function() {
syntax() error()
});

示例 2:

document.observe("dom:loaded", function() {
syntax(); error()
});

现在有趣的是:
如果我执行 Sample1,我会收到一个 javascript 错误“Missing ; before statement”——当然,在“error()”之前应该有一个分号——所以这种类型的错误似乎有效。如果我执行 Sample2,我不会收到任何错误(实际上它不再是语法错误),但我应该会收到一个我没有收到的“未定义变量”错误。
任何线索这里发生了什么?
IE 打印出错误顺便说一句

【问题讨论】:

  • 您可以尝试将"use strict"; 放在 Javascript 文件的顶部。
  • 感谢您的回答,但不会改变任何事情

标签: javascript firefox prototypejs


【解决方案1】:

发生的情况是,在示例 2 中,当添加分号时,字符串 syntax; error 充当两个单独的全局变量,在编译器看来它与 window.syntax; window.error 相同

document.observe('dom:loaded', function() {
    syntax = 10; error = 5;
    alert(syntax + ' ' + error);
});

尝试运行上面的示例。这将有助于更清楚地解释问题...

【讨论】:

  • 好吧,也许我的样本不是那么好,但如果我用 syntax() 尝试它,我会得到相同的结果;错误();这应该给我一个函数未定义的错误
猜你喜欢
  • 2016-01-27
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 2011-12-15
  • 1970-01-01
相关资源
最近更新 更多