【问题标题】:Uncaught SyntaxError: Unexpected identifier Readability.js:108未捕获的 SyntaxError:意外的标识符 Readability.js:108
【发布时间】:2013-10-07 23:42:16
【问题描述】:

我想研究 Firefox for Android 中阅读器模式的功能。为此,我从 Firefox 源中获取了 Readability.js 并创建了一个简单的 HTML 文件:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<script src="Readability.js"></script>
</body> </html>

如果我在 Chrome 中加载上述页面并打开我看到的 JavaScript 控制台

Uncaught SyntaxError: Unexpected identifier Readability.js:108

如果我在 Firefox 中做同样的事情,结果是相似的:

语法错误:缺失;声明前@file:///XXX/Readability.js:108

为什么 Readability.js 在适用于 Android 的 Firefox 中有效,而在桌面浏览器中如上所示使用时无效?

【问题讨论】:

  • 你检查过第 108 行的内容吗?
  • 108: 让方案 = this._uri.scheme;

标签: javascript


【解决方案1】:

根据其他答案和 cmets,我发现有必要在脚本元素中指定 javascript 版本:

<script src="Readability.js" type="application/javascript;version=1.7"></script>

let 关键字是在 1.7 版中添加的。修改后,没有出现javascript错误(在Firefox下测试)。

【讨论】:

    【解决方案2】:

    目前的 JavaScript 还没有 let 关键字。这是 Mozilla's dialect has had for a while 和 it's coming in ES6 的东西,但你还不能指望在野外找到它。

    【讨论】:

    • 但是,脚本在整个代码中都使用了let 和const,那么为什么 Chrome 会在该特定行(而不是前一行)阻塞?
    • @Bergi:这是一个很好的观点。说实话,我不知道。如果我尝试包含该文件,它也适用于我。但我认为从根本上说,我们知道 Chrome 的 V8 不支持 let 没有设置实验标志,如果你尝试使用它会给出错误 (jsbin.com/OwEHUJO/1),这就是问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多