0

これは JavaScript コードの非常に「標準的な」部分ですが (何千もの例で見てきました)、私にはうまくいきません:

<head>
<title>Temp</title>
<script type="text/javascript">
    function start() {
        var newScript = document.createElement('script');
        newScript.type = "text/javascript";
        newScript.src = "toBeIncluded.js";  // THIS ONE DOES NOT WORK
        document.body.appendChild(newScript);
        // alert(newScript.contentText);
    }
</script>
</head>

<body onload='start()'>
</body>
</html>

実際、エラーは発生せず、タグは実際に追加されます-残念ながら、完全に空です(コメントされたアラート行で確認します)。「toBeIncluded.js」ファイルが存在し、空ではなく、この HTML と同じローカル ディレクトリにあることを考慮してください (すべてを PC でローカルに実行しています)。

助けてください、私は多くの可能なバリエーションを試しました(ディレクトリを変更する、フルパスを含める、コードを「本文」セクションに移動するなど)が成功しませんでした

4

1 に答える 1

0

Firefox 用のFirebug拡張機能をインストールすることをお勧めします。他のブラウザで使用するためのFirebug Liteスクリプトもあります。それらは異なる方法で機能しますが、同様の機能を備えています。他の人が述べたように、HTTP トランザクション情報を表示すると役立つ場合があります。Firebug では、これは "Net" パネルで利用できます。ブラウザがスクリプトを読み込もうとすると、Net パネルにアイテムが表示されます。(ネットパネルオプションで「すべて」または「スクリプト」が選択されていることを確認してください)。

スクリプト リクエストが表示されている場合は、リクエストの結果も表示されます。たとえば、「404 Not Found」の場合は、URL が正しく解決されていません。「200 OK」または「304 Not Modified」の場合、リクエストは成功しています。アイテムに小さなスピナー グラフィックが表示されている場合は、まだターゲット サーバーに接続しようとしています。

ネット パネルにリクエストが成功したことが示されたら、[HTML] パネルに移動します。HTML パネルにはドキュメント オブジェクトの現在の状態が表示されるため、開始関数が適切に実行された場合は、"script" 要素が body 要素の子として表示されます。

スクリプト要素が正常に追加されても HTTP 要求が行われない場合は、ブラウザーのセキュリティ設定に問題がある可能性があります。たとえば、リクエストが HTTP/HTTPS または http/file プロトコルの境界を越える場合、ブラウザは黙って拒否することがあります。

新しいブラウザー ウィンドウを開いて、スクリプト URL を直接要求してみてください。これは、URL のスペルミスやサーバー接続の問題を除外するのに役立ちます。

于 2011-03-06T20:57:35.083 に答える