0

私は JavaScript の初心者です。なぜこのコードが頭に書かれたときに機能するのかを理解しようとしていますが、外部ファイルから参照されているときはそうではありません。

私のhtmlドキュメントの先頭で、次のようにjavascriptファイル「quote.js」を参照しています。

<script type="text/javascript" language="JavaScript" src="/js/quote.js"> </script>

quote.js の中身は以下の通り

var textarray = [
    "Be Good.",
    "Our future depends powerfully on how well we understand the cosmos.",
    "Bottomless wonders spring from simple rules... repeated without end.",
    "All our science, measured against reality, is primitive and childlike — and yet, it is the most precious thing we have.",
    "To use violence is to already be defeated."
    ];

    function RndText() {
      var rannum= Math.floor(Math.random()*textarray.length);
      document.getElementById('ShowText').innerHTML=textarray[rannum];
    }
    window.onload = function() { RndText(); }

最後に、ボディで置き換えているdivは次のとおりです...

<div id = "ShowText"></div>

それはおそらくばかげた間違いですが、私はしばらくの間それを追跡しようとしてきましたが、何かが欠けています. quote.js の内容を html の head に書いてみると、うまくいきます。何か案は?前もって感謝します。

4

2 に答える 2

0

コードが head 内では機能するが、インクルードされたときに機能しない場合は、スクリプトへのパスに問題がある可能性があります。/js/quote.js適切な場所であることを再確認してください。である必要があるjs/quote.jsかもしれません。タイプミスがある可能性があります。FireFox や Chrome などのブラウザーでは、ページのソース コードを表示する場合、このようなファイルへのパスをクリックすると、含まれているファイルが読み込まれるか、ファイルが見つからない場合はエラーが表示されます。

そのページへのリンクを共有していただければ、問題が何であるかをより正確にお伝えできます。

また、XHTML を使用している場合は language 属性を指定する必要はありませんが、それによって問題が発生することはありません。

于 2012-07-06T18:41:59.570 に答える
0

DOM の準備が整う前にコードが実行されている可能性があります

onloadイベントを使用する代わりにDOMContentLoaded

document.addEventListener('DOMContentLoaded', function () {
   //code here
}, false);
于 2012-07-06T18:43:32.970 に答える