Chrome无法加载我的js文件

5

我的网页非常基础

<!DOCTYPE html>
<html>
  <head>
    <title>Title</title>
  </head>
  <body>
    <h1>Title</h1>
    <canvas id="can"></canvas>
    <video autoplay id="vid" style="cursor:pointer"></video><br>
    <script type="application/javascript;version=1.7" src="8bit.js"></script>
  </body>
</html>

它在Firefox中加载JavaScript,但在Chrome中不加载。

如果我将JavaScript文件的内容复制并粘贴到Chrome控制台中,则可以正常运行。

为什么它不能从Chrome的脚本标记加载?


6
我看到了“Chrome无法加载我的人生”。有时候Chrome会很糟糕。 - axelduch
2个回答

6

根据MDN关于 let 关键字的要点:

let 关键字仅在 Chrome 浏览器控制台中进行测试,而且不适用于正常使用。Chrome 不支持 let,但 Firefox 支持。

请替换以下内容:

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

使用:

<script type="text/javascript" src="8bit.js"></script>

Chrome在type属性上做出了严格的决定,因此请谨慎使用。只有对于Firefox来说,以下内容是有效的:

仅适用于包含在<script type="application/javascript;version=1.7">块(或更高版本)中的HTML代码块。但请注意,由于这是一个非标准功能,这很可能会破坏其他浏览器的支持。XUL脚本标签可以访问这些功能而无需此特殊块。

Chrome的解决方法:

要启用这些特殊关键字,请在脚本块的顶部添加以下代码:

"use strict"; 

这会导致问题,因为我在for循环中使用了let关键字。 - Matt Ellen
@MattEllen 当您使用我的解决方案时会发生什么? - Praveen Kumar Purushothaman
它在Firefox和Chrome中停止工作。SyntaxError: let is a reserved identifier是Firefox中的错误。Chrome中没有错误。 - Matt Ellen
好的,谢谢。我会发布一个关于 let 的新问题。 - Matt Ellen
@MattEllen 我已经添加了一个解决方法。 - Praveen Kumar Purushothaman
显示剩余2条评论

1
您需要使用HTML5的文档类型,并且脚本默认为JavaScript,因此以下代码也可以正常工作:

<script src="8bit.js"></script>

你的回答在技术上对这个问题是正确的。type属性不再需要,因为它默认为“text / javascript”。OP在他的问题中没有提到他正在测试实验性的ES6功能。因此,加一分! - blex
1
谢谢 - 顺便说一句,你救了我的尊严 :) - Ori Drori
这是我说的同样的话。但问题不同了。我取消了我的踩票。 - Praveen Kumar Purushothaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接