JavaScript課題対応で発見したTips2
動的にscript要素を作成、編集するパターンおよびブラウザ間の挙動の違いをメモしておく。
大まかには以下の認識でよいだろう。(※例外ケースは、後述の詳細で赤文字で記載している)
- textよりもsrcが優先される
- IE8以前はDOMにアペンド後のscript要素の操作でもJavaScriptが実行されていたが、FFやIE9以降では実行されくなっている
以下、詳細を記述する。
検証コード:
【main.html】 window.onload = function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.text = 'alert("fromText");'; // script.src = './test.js'; var head = document.getElementsByTagName('head')[0]; head.appendChild(script); // script.text = 'alert("fromText");'; script.src = './fromSrc.js'; } 【fromSrc.js】 alert('fromSrc');