HTML ファイルに script タグがあります
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
および外部のjavascriptファイル、スクリプトタグの変数がjavascriptファイルのスクリプトと相互作用する方法はありますか?
HTML ファイルに script タグがあります
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
および外部のjavascriptファイル、スクリプトタグの変数がjavascriptファイルのスクリプトと相互作用する方法はありますか?
スクリプト ファイルのコンテンツと次のスクリプト要素の両方が、単一のスクリプト要素にあるかのようにグローバル コードとして扱われます。
ただし、最初のファイルのコードは、2 番目のスクリプト要素のコンテンツが解析または実行される前に実行されます (つまり、2 番目のスクリプトで宣言および初期化された変数は、最初のスクリプトには存在しません)。
スクリプトタグのコードからjavascriptファイルの変数を参照する場合は、javascriptファイルがロードされていることを確認する必要があります。これを行う一般的な方法は、ハンドラーをwindow.onloadイベントにアタッチし、そのハンドラー内のファイルから変数を参照することです。これを行う最も簡単な(ただし必ずしも最良ではない)方法は次のとおりです。
<script>
window.onload = function() {
// reference loaded variables, domNodes, etc
}
</script>
ほとんどのjavascriptライブラリ/フレームワークには、これを行うためのメカニズムがあります。1つの例については、jQuery .ready()を参照してください。
意味のあるモジュールに分割したい大規模なアプリケーションがある場合は、AMD(非同期モジュール定義)を調査することをお勧めします。AMDとは何か、AMDを使用する理由を説明したスライドの素晴らしいセットがhttp://blog.amt.in/asynchronous-module-definition-amd-why-what-aにあります。
絶対。外部ファイルがページに読み込まれると、2 番目のスクリプトのようにページ内でコーディングされているかのように扱われます。変数のスコープ方法によっては、競合が発生し、値が変更/上書きされる可能性があります。
あなたのhtml構造は無効のようです
する必要があります
<html>
<head>
<script type="text/javascript" src="myjs.js"></script>
<script type="text/javascript">
//Now you can use external variable here
</script>
</head>
<body>
</body>
</html>