【问题标题】:Using let and yield in Firefox在 Firefox 中使用 let 和 yield
【发布时间】:2013-01-15 05:22:52
【问题描述】:

我正在尝试在 Firefox 中使用 letyield。我正在测试版本 18 和 21(每晚)并获得相同的结果。

这是我非常简单的测试脚本:

<html>
    <head>
        <title>test</title>
        <script type="text/javascript">
            'use strict';
            function a() {
                yield 5;
            }
        </script>
    </head>
    <body></body>
</html>

我收到此错误:

同样,当我使用let 进行简单测试时,我得到“let 是一个保留标识符”,这真的很令人沮丧,因为let has supposedly existed in Firefox since version 2

奇怪的是,如果我在 Firebug 中执行相同的代码,它就可以工作!

我在script 标记的typelanguage 属性中尝试了各种其他字符串,但没有找到一个有效的神奇字符串。

发生了什么事?如何让这些东西与脚本标签一起使用?


编辑

嗯,我明白了,所以你必须指定版本号。我试过这个,但是对于我原来使用网络工作者的更复杂的脚本。显然在一个包含 web worker 的脚本上使用 version=1.7,其中包含一个使用 letyield 的脚本还不够好——web worker 脚本仍然中断......然后我尝试减少到​​最简单的情况,但是在最简单的情况下显然没有尝试version=1.7

谢谢...稍后可能会发布另一个问题(搜索后),关于如何让网络工作者使用它。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    正如mdn note 所说,

    yield 关键字仅适用于封装在 &lt;script type="application/javascript;version=1.7"&gt; 块(或更高版本)中的 HTML 代码块

    因此,将 &lt;script type="text/javascript"&gt; 更改为 &lt;script type="application/javascript;version=1.7"&gt; 即可。

    【讨论】:

    • 明白了,我的测试很草率。正如我的编辑所说,我真的需要它来与网络工作者一起工作。我可能会发布另一个与此相关的问题。谢谢!
    • 这也为我解决了与let 类似的问题。奇怪的是我之前没有在文档中的某个地方看到过该信息:-(
    • 这似乎破坏了 IE 11
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多