1

FirefoxとChromeでエラーが発生する原因となったドキュメント全体は次のとおりです。

<!DOCTYPE html>
<html>
<head>
    <script>
        var strs = [], scripts = ['harbl.js'], s = 0;
        strs.push('<script src="' + scripts[s] + '"></script>');
    </script>
</head>
<body>
    <p>buh...</p>
</body>
</html>

http://jsfiddle.net/cryptoquick/J4zZT/

私が得るエラーは次のとおりです。

Uncaught SyntaxError: Unexpected token ILLEGAL 

これは私を本当に困惑させました。

4

3 に答える 3

9

</script>リテラルは、コードをトラバースするときにコンテキストを認識しないため、ブラウザーによって解析されます。あなたはそのようにそれを脱出する必要があります:<\/script>。これは既知の問題です。

于 2012-10-01T18:39:24.020 に答える
3

次のように変更します。

strs.push('<script src="' + scripts[s] + '"></s' + 'cript>');
于 2012-10-01T18:40:55.277 に答える
-1

フロントスラッシュ'/'は特殊文字と見なされます。これがエラーの原因です。

strs.push('<script src="' + scripts[s] + '"><\/script>');

JavaScriptと文字列のスラッシュの詳細については、この投稿をお読みください 。

于 2012-10-01T19:00:54.447 に答える