javascriptの中で、jsファイルを動的にロードするための様々な解決方法をまとめました.
3007 ワード
一つの比較は全部ダイナミックに方法を加えています.
したがって、このような を いてJsを にロードするとともに、メインインターフェースのJsスクリプトは に されるので、 でロードされたJsコードが される を られない があります.
この はAjaxでJsをロードする が えられます.
/*
js v1.0 by:dum
:src="webJsBase.js?load=a,b"
: js
*/
var webJsBase = {
require: function(libraryName) {
document.write('');
},
load: function(defaultLoad) {
if((typeof Prototype=='undefined')||(typeof Element == 'undefined')||(typeof Element.Methods=='undefined'))
throw ('prototype lib !');
if(typeof defaultLoad=='undefined')defaultLoad='';
var js = /webJsBase.js(?.*)?$/;
$$('head script[src]').findAll(function(s) {
return s.src.match(js);
}).each(function(s) {
var path = s.src.replace(js, '');
var includes = s.src.match(/?.*load=([a-zA-Z0-9_,]*)/);
(includes ? includes[1] : defaultLoad).split(',').each(function(include) {
webJsBase.require(path + include + '.js');
});
});
}
};
webJsBase.load(); // js
これは な です.ロードしてから document.writeを してください.
<p></p>
<p> document.write("<script src='test.js'> ");
scriptにIDを付けてからダイナミックにscriptのsrc属性を変えます.
s1.src="test.js"
ここでgetElements ByTagName('HEAD')を って にscript を します.
<p></p>
<p> var oHead = document.getElementsByTagName('HEAD').item(0);</p>
<p> var oScript= document.createElement("script");</p>
<p> oScript.type = "text/javascript";</p>
<p> oScript.src="test.js";</p>
<p> oHead.appendChild( oScript);</p>
<p>
このように試してみてもいいです.関数は自分で決めます.
function include(src) {
HTMLCode = '';
document.write(HTMLCode);
}
び し は、このようにあなたのphpのinclude に えます.
include(baseDir + "/Prototype.js");
include(baseDir + "/Map.js");
include(baseDir + "/MapEvent.js");
include(baseDir + "/model/MapModel.js");
include(baseDir + "/model/MapType.js");
include(baseDir + "/model/Tile.js");
また、ExtJs 4を って、jsを にロードできると に われました.ここでは しません. の はダイナミックにjsをロードするのに です.したがって、このような を いてJsを にロードするとともに、メインインターフェースのJsスクリプトは に されるので、 でロードされたJsコードが される を られない があります.
この はAjaxでJsをロードする が えられます.