11

Firefoxで使用しようとしてletいます。yield私はバージョン18と21(Nightly)の両方でテストしており、同じ結果を得ています。

これが私の本当に簡単なテストスクリプトです:

<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識別子」が表示されます。これはlet 、バージョン2以降Firefoxに存在していると思われるため、非常に苛立たしいものです。

不思議なことに、Firebugで同じコードを実行すると、機能します。

typeタグの属性とlanguage属性で他のさまざまな文字列を試しscriptましたが、機能する魔法の文字列は見つかりませんでした。

どうしたの?このようなものをスクリプトタグで機能させるにはどうすればよいですか?


編集

うーん、なるほど、バージョン番号を指定する必要があります。私はこれを試しましたが、Webワーカーを使用した元のより複雑なスクリプトの場合です。どうやら、使用していて十分ではないversion=1.7スクリプトを含むWebワーカーを含むスクリプトで使用letしているようです-Webワーカースクリプトはまだ壊れています...次に、最も単純なケースに減らしてみましたが、最も単純なケースでは試していませんでした。yieldversion=1.7

ありがとう...Webワーカーのためにこれを機能させる方法について(検索した後)少しで別の質問を投稿するかもしれません。

4

1 に答える 1

19

mdn noteが言ったように、

<script type="application/javascript;version=1.7">yieldキーワードは、ブロック(またはそれ以降のバージョン)でラップされたHTMLのコードブロックでのみ使用できます。

したがって、に変更<script type="text/javascript">する<script type="application/javascript;version=1.7">と機能します。

于 2013-01-15T05:34:51.247 に答える