2

Javascript をローカルでデバッグしようとしていますが、奇妙な問題が発生しています。次のようなローカルファイルを開くと:

<html>
    <head>
        <script src="file.js"></script>
    </head>
    <body></body>
</html>

次のような file.js を使用します。

(function() {
    'use strict';
    debugger
})();

デバッグ行で一時停止できません。ただし、まったく同じファイルを Firefox/Firebug で開くと、その行で一時停止します。また、ローカル サーバーで提供されているファイル (つまりhttp://、ファイルではなくfile://ファイル) にデバッガー行を追加すると、Chrome デバッガーは期待どおりに一時停止します。

この問題は、(私が知る限り) ローカル ファイルを使用する Chrome でのみ発生します。ただし、私は多くのことをグーグルで検索しましたが、Chrome またはそのようなもの (誤って有効にした可能性があるもの) の「ローカル ファイルでデバッガーを無効にする」オプションを見つけることができませんでした。

誰かがこれを以前に見たことがありますか?もしそうなら、あなたはそれを解決できましたか?

4

1 に答える 1

3

そのため、問題は Chrome に追加したフラグであることが判明しました。デフォルトでは、Chrome はローカル ファイルが他のローカル ファイルにアクセスできないようにするため、コマンド ライン フラグを使用して local-file-loading を有効にしました。

--allow-file-access-from-files

ローカル ファイル (または少なくとも他のローカル ファイルによって読み込まれたローカル ファイル) を実行すると、Chrome は明らかにそれらを「サンドボックス化」します。残念ながら、Chrome は「サンドボックス化された」コードのデバッグも拒否しているため、私のデバッガーは不思議なことに失敗していました。

したがって、Chrome でローカル ファイルを実行したい場合 (たとえば、Web ベースのテスト フレームワークを実行したい場合) は、最初に上記のフラグを追加してから、次のフラグも追加することをお勧めします。

--allow-sandbox-debugging

debuggerこれにより、コードにローカル ファイルの行が含まれている場合でも、Chrome でデバッガーがトリガーされます。

于 2013-02-18T23:20:36.853 に答える