SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.10<<123456789101112131415161718192021222324252627282930>>2017.12
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

何かタイトルは難しく書いてしまったが、要は JSONP などを簡単に利用するためのクラス。
function DynamicScript()
{
this.initialize.apply(this, arguments);
}
DynamicScript.prototype = {
initialize: function(expr) {
this.bodyElement = document.getElementsByTagName("body")[0];
this.addedScriptElement = null;
if (expr) this.run(expr);
},

run: function(expr) {
if( typeof expr == "function" ) {
expr();
}
else if( expr.match(/^https?:/) || expr.match(/\.js$/) ) {
this.runURL(expr);
}
else {
this.runText(expr);
}
},

runURL: function(url) {
var script = this.createScriptElement();
script.setAttribute("src", url);
this.addScriptElement(script);
},
runText: function(scr) {
var script = this.createScriptElement();
script.innerHTML = scr;
this.addScriptElement(script);
},

cleanup: function() {
if (this.addedScriptElement) {
this.bodyElement.removeChild(this.addedScriptElement);
this.addedScriptElement = null;
}
},


createScriptElement: function() {
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
return script;
},
addScriptElement: function(script) {
this.cleanup();
this.bodyElement.appendChild(this.addedScriptElement = script);
}
};



基本的には、
var scr = new DynamicScript(url);

とすれば、urlスクリプトをソースとしたscriptタグを追加してくれる。
ま、おまけ程度に URL だけでなく、スクリプトのテキストでも良いようになっている。

繰り返し使う場合などは、
var scr = new DynamicScript();
setInterval(test, 1000);

function test()
{
scr.run(url);
}


と、いう感じ。

ま、いつものことだが、適当に作っているので使うときは、注意(笑)
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。