ホームページ > ウェブフロントエンド > jsチュートリアル > インライン JavaScript が外部ソースのスクリプト タグで機能しないのはなぜですか?

インライン JavaScript が外部ソースのスクリプト タグで機能しないのはなぜですか?

Susan Sarandon
リリース: 2024-10-24 03:38:31
オリジナル
243 人が閲覧しました

Why is Inline JavaScript Not Working in Script Tags with External Sources?

HTML スクリプト タグを使用したスクリプトのロード

HTML スクリプト タグは、JavaScript コードを含めて実行するために使用されます。デフォルトでは、このタグは JavaScript ファイルをロードするための scr などの外部ソース属性を受け取ります。ただし、次のようにスクリプト タグ内にインライン JavaScript を含めようとすると、

<script src="myFile.js">
    alert( "This is a test" );
</script>
ログイン後にコピー

エラーをスローせずに失敗します。

スクリプト タグでインライン JavaScript を使用すると機能しない理由

この動作の理由は、スクリプト要素が外部ソースかインラインソースかに関係なく、単一のソースしかロードできないためです。 src とインライン コンテンツの両方が存在する場合、インライン コンテンツは無視されます。したがって:

<script src="script/addScript.js">
    addScript( "script/obj.js" );
    addScript( "script/home/login.js" );
</script>
ログイン後にコピー

指定されたスクリプトはロードされません。

解決策: 複数のスクリプト要素の使用

複数のスクリプトをロードするには、それぞれに個別のスクリプト要素を使用する必要があります。 :

<script src="script/obj.js"></script>
<script src="script/home/login.js"></script>
ログイン後にコピー

また、必要なスクリプトを動的にロードする親スクリプトを作成することもできます:

<script>
var scripts = ["script/obj.js", "script/home/login.js"];
for (var i = 0; i < scripts.length; i++) {
  var script = document.createElement("script");
  script.src = scripts[i];
  document.head.appendChild(script);
}
</script>
ログイン後にコピー

追加メモ

スクリプト要素ではインライン JavaScript は無視されます外部ソースの場合、スクリプト要素のコンテンツは DOM に残ります。このため、一部の開発者は、外部スクリプトによってアクセスされるデータを保存するためにこれを使用するようになりました。ただし、一般に、この目的には data-* 属性を使用する方がより適切でクリーンなアプローチです。

以上がインライン JavaScript が外部ソースのスクリプト タグで機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート