読者です 読者をやめる 読者になる 読者になる

S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

動的に外部のJavaScriptファイルを読み込む場合の動作(jQuery編)

jQueryでもできるので試してみた。
jQuery 2.1.1

document.write('<script src="' + src + '" type="text/javascript"></script>'):

16日(DOM操作編)、 19日(document.write編)と同じように確認してみた。

変更箇所

変更前(DOM操作編)

function setLinkJs(filename) {
    var script = document.createElement('script');
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", "./" + filename);
    var head = document.getElementsByTagName("head")[0];
    head.appendChild(script);
}

変更前(document.write編)

function setLinkJs(filename) {
    document.write("<script src='" + "./" + filename + "' type='text/javascript'><\/script>");
}

変更後(document.jQuery編)

function setLinkJs(filename) {
    $.getScript("./" + filename, function(){
    });
}

動作

基本的にjQueryってダメなの???

  Chrome Firefox InternetExplorer
(1) エラー エラー エラー
(2) エラー エラー エラー
(3) エラー OK エラー
(4) エラー OK エラー

Chromeのコンソールで「XMLHttpRequest cannot load file://…/linktest_hoge.js?_=1400562534587」とか「XMLHttpRequest cannot load file://…/linktest_hoge.js?_=1400562534587」って出力されてるけど、AjaxJavaScriptを取得しようとしてるっぽいな。
Ajaxで非同期だから(1)(2)(4)がエラーは理解できるけど、(3)はなんでエラーなんだろ?

$.getScriptの結果をalert表示

function setLinkJs(filename) {
    $.getScript("./" + filename).done(function(script, textStatus) {
    	alert(textStatus);
    });
}

ってコードにしてみたら、Firefoxは「success」ってalertが表示されるが、ChromeとInternetExplorerはダンマリ…JavaScriptファイルの取得ができてないってことかな???