2015-08-17 41 views
3

我的页面是非常基本的浏览器无法加载我的JS文件

<!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> 

它加载JavaScript的Firefox,但在Chrome没有。

如果我将JavaScript文件的内容复制并粘贴到Chrome中的控制台中,那么它运行良好。

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

+3

我读过“Chrome不会加载我的生活”。铬有时候是一个病态的家伙。 – axelduch

回答

6

从MDN本质约let关键字:

The keyword let is supported in Chrome only for testing purposes only in the Console and not in the normal flow. Chrome doesn't support let but Firefox does.

替换以下:

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

有了:

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

Chrome会在type属性严格的决策。所以请小心使用。只适用于Firefox,这是有效的:

Only available to code blocks in HTML wrapped in a <script type="application/javascript;version=1.7"> block (or higher version). Beware, however, that as this is a non-standard feature, this will most likely break support for other browsers. XUL script tags have access to these features without needing this special block.

解决方法适用于Chrome:

为了让这些特殊的关键字中加入了对脚本块的顶部下面的代码:

"use strict"; 
+0

这会导致问题,因为我在for循环中使用了'let'关键字。 –

+0

@MattEllen当你使用我的解决方案时会发生什么? –

+0

它在bot firefox和chrome中停止工作。 'SyntaxError:let是一个保留的标识符'是Firefox中的错误。 chrome中没有错误。 –

0

您使用HTML5的文档类型,并且脚本默认为JavaScript,所以这也将起作用:

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

对于这个问题,你的答案在技术上是正确的。 type属性不再需要,因为它默认为'text/javascript'。 OP在他的问题中没有说他正在测试ES6的实验功能。所以,+1! – blex

+1

谢谢 - 顺便说一句,你已经保存了我的尊严:) –

+0

这是我说的同样的事情。但问题是不同的。我删除了我的downvote。 –

相关问题