HTMLに2つのdivがあります。
<div id="div1"></div>
<div id="div2"></div>
「div2」をクリックすると、外部のJavaScriptファイルをロードしたいので、たとえば「 https://abcapis.com/sample.js 」と言います。
以下のようなonclickイベントにJSファイルを含めてみましたが、
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://abcapis.com/sample.js";
document.getElementsByTagName("head")[0].appendChild(script);
これには、ヘッドセクションにスクリプトタグが含まれていましたが、スクリプトタグはページの読み込み時にのみ読み込まれるため、読み込まれませんでした(私が間違っている場合は、ここで修正してください)。
私が進めることができる他の方法はありますか?.
前もって感謝します。
JQueryの$ .getScript()関数を使用することで、作業が完了するはずです。
http://api.jquery.com/jQuery.getScript/
以下はサンプルコードの一部です。
$("button").click(function(){
$.getScript("demo_ajax_script.js");
});
JQueryを使用していない場合は、AJAXを使用してページに新しいスクリプトを動的にロードする方法を学習する必要があります。
コードはほとんど機能します。 .setAttribute
を使用する必要があります。これが私の作業コードです。スクリプトとしてjQueryを使用しました。
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'jquery.min.js');
document.head.appendChild(script);
そして、それはそれをします。
編集:
いくつかの詳細。 script.type = 'text/javascript'
のようなことをすると、オブジェクトにプロパティを設定しますが、これは必ずしもそのプロパティを実際のノード属性に関連付けることと同じではありません。
JQueryを使用していますか?もしそうなら、あなたは $。getScript() を試すことができます。
これもチェックしたいかもしれません answer 。しかし、基本的には、次のようなことができます:
<a href='linkhref.html' id='mylink'>click me</a>
<script type="text/javascript">
var myLink = document.getElementById('mylink');
myLink.onclick = function(){
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "Public/Scripts/filename.js.";
document.getElementsByTagName("head")[0].appendChild(script);
return false;
}
</script>
$("button").click(function(){
$.getScript("demo_ajax_script.js");
});
私が見逃した情報は、パスは絶対的でなければならないということでした。