JavaScript内でScriptタグを生成する方法でext-all.jsとかext-all-debug.jsとか遅延ロードしたい。
var s = document.createElement(“script”);
s.src=”ext-all-debug.js” mce_src=”ext-all-debug.js”;
s.charset = “UTF-8”;
document.body.appendChild(s);
こんな感じになるわけだけど、Firefox2ではOKなのに、IEではエラーになるな…。
IEのスクリプトデバッガで見ると、ext-all-debug.jsでは1554行でエラーといっている。以下のdefer.onreadystatechangeというところ。「Nullは”null”ではありません」とか、そんなメッセージが出てたから、実はその次行かな?
var initDocReady = function(){
docReadyEvent = new Ext.util.Event();
if(Ext.isGecko || Ext.isOpera) {
document.addEventListener(“DOMContentLoaded”, fireDocReady, false);
}else if(Ext.isIE){
document.write(略);
var defer = document.getElementById(“ie-deferred-loader”);
defer.onreadystatechange = function(){
if(this.readyState == “complete”){
fireDocReady();
}
};
ブログパーツっぽいスクリプト中で、ExtJSをロードして使いたかったんだけどな。
とりあえず~でExtJSを読み込む形にして、お茶を濁しておこう。