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」って出力されてるけど、AjaxでJavaScriptを取得しようとしてるっぽいな。
Ajaxで非同期だから(1)(2)(4)がエラーは理解できるけど、(3)はなんでエラーなんだろ?
$.getScriptの結果をalert表示
function setLinkJs(filename) { $.getScript("./" + filename).done(function(script, textStatus) { alert(textStatus); }); }
ってコードにしてみたら、Firefoxは「success」ってalertが表示されるが、ChromeとInternetExplorerはダンマリ…JavaScriptファイルの取得ができてないってことかな???