我正在尝试在Firefox中使用let
和yield
。我正在测试版本18和21(每晚)并获得相同的结果。
这是我非常简单的测试脚本:
<html>
<head>
<title>test</title>
<script type="text/javascript">
'use strict';
function a() {
yield 5;
}
</script>
</head>
<body></body>
</html>
我收到此错误:
类似地,当我使用let
进行简单测试时,我得到“let is a reserved identifier”,这真是令人沮丧,因为let
has supposedly existed in Firefox since version 2!
奇怪的是,如果我在Firebug中执行相同的代码,它就可以了!
我在type
标记的language
和script
属性中尝试了各种其他字符串,但没有找到有效的神奇字符串。
发生了什么事?如何使用脚本标记来处理这些内容?
嗯,我明白了,所以你必须指定版本号。我试过这个,但是对于我原来使用网络工作者的更复杂的脚本。显然在包含使用version=1.7
和let
的脚本的Web工作者的脚本上使用yield
还不够好 - Web工作者脚本仍然会中断...然后我尝试减少到最简单的情况,但显然在最简单的情况下没有尝试version=1.7
。
谢谢......可以稍微发布另一个问题(搜索之后),了解如何让这对网络工作者起作用。
答案 0 :(得分:19)
正如mdn note所说,
yield关键字仅适用于包含在
<script type="application/javascript;version=1.7">
块(或更高版本)中的HTML中的代码块
将<script type="text/javascript">
更改为<script type="application/javascript;version=1.7">
会使其有效。