2010-03-31 53 views
0

我想創建一個包含每個js文件的js文件,以將它們附加到它所在的head標籤。將js文件附加到一個js文件,但帶有JQuery錯誤!

但我得到這個錯誤

Microsoft JScript runtime error: Object expected 

這是我的代碼:

var baseUrl = document.location.protocol + "//" + document.location.host + '/yabant/'; 

// To find root path with virtual directory 
function ResolveUrl(url) { 
    if (url.indexOf("~/") == 0) { 
     url = baseUrl + url.substring(2); 
    } 
    return url; 
} 

// JS dosyalarının tek noktadan yönetilmesi 
function addJavascript(jsname, pos) { 
    var th = document.getElementsByTagName(pos)[0]; 
    var s = document.createElement('script'); 
    s.setAttribute('type', 'text/javascript'); 
    s.setAttribute('src', jsname); 
    th.appendChild(s); 
} 

addJavascript(ResolveUrl('~/js/1_jquery-1.4.2.min.js'), 'head'); 
$(document).ready(function() { 
    addJavascript(ResolveUrl('~/js/5_json_parse.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/3_jquery.colorbox-min.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/4_AjaxErrorHandling.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/6_jsSiniflar.js'), 'head'); 

    addJavascript(ResolveUrl('~/js/yabanYeni.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/7_ResimBul.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/8_HaberEkle.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/9_etiketIslemleri.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/bugun.js'), 'head'); 
    addJavascript(ResolveUrl('~/js/yaban.js'), 'head'); 
    addJavascript(ResolveUrl('~/embed/bitgravity/functions.js'), 'head'); 
}); 

路徑是正確的。我想告訴你文件夾結構和麪板: alt text

任何幫助將不勝感激。

回答

1

我認爲問題在於當您使用$ global時,jQuery未完成加載。根據Loading Scripts Without Blocking,這種機制並不總是在IE中保留執行順序。

簡單的解決方案是使用靜態腳本標籤來加載jQuery。 I.E.明確地把HTML:

但你真的需要等待ready事件加載其他腳本,或者你只是需要jQuery加載?

+0

「document.write腳本標記 - 使用document.write將

0
// url=> http: + // + localhost:4399 + /yabant/ 
//  ----  ---- -------------- -------- 
//  protocol + "//" +  host  + '/virtualDirectory/' 
var baseUrl = document.location.protocol + "//" + document.location.host + '/yabant/'; 

// If there is "~/" at the begining of url, replace it with baseUrl 
function ResolveUrl(url) { 
    if (url.indexOf("~/") == 0) { 
     url = baseUrl + url.substring(2); 
    } 
    return url; 
} 

// Attaching scripts to any tag 
function addJavascript(jsname, pos) { 
    var th = document.getElementsByTagName(pos)[0]; 
    var s = document.createElement('script'); 
    s.setAttribute('type', 'text/javascript'); 
    s.setAttribute('src', jsname); 
    th.appendChild(s); 
} 

// I want to make sure jQuery is loaded? 
addJavascript(ResolveUrl('~/js/1_jquery-1.4.2.min.js'), 'head'); 

var loaded = false; // assume it didn't first and if it is change it to true 
function fControl() { 
    // alert("JQUERY is loaded?"); 
    if (typeof jQuery == 'undefined') { 
     loaded = false; 
     fTry2LoadJquery(); 
    } else { 
     loaded = true; 
     fGetOtherScripts(); 
    } 
} 

// Check is jQuery loaded 
fControl(); 

function fTry2LoadJquery() { 
    // alert("JQUERY didn't load! Trying to reload..."); 
    if (loaded == false) { 
     setTimeout("fControl()", 1000); 
    } else { 
     return; 
    } 
} 

function getJavascript(jsname, pos) { 
    // I want to retrieve every script one by one 
    $.ajaxSetup({ async: false, 
     beforeSend: function() { 
      $.ajaxSetup({ async: false }); 
     }, 
     complete: function() { 
      $.ajaxSetup({ async: false }); 
     }, 
     success: function() { 
      // 
     } 
    }); 

    $.getScript(ResolveUrl(jsname), function() { /* ok! */ }); 
} 

function fGetOtherScripts() { 
    // alert("Other js files will be load in this function"); 

    getJavascript(ResolveUrl('~/js/5_json_parse.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/3_jquery.colorbox-min.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/4_AjaxErrorHandling.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/6_jsSiniflar.js'), 'head'); 

    getJavascript(ResolveUrl('~/js/yabanYeni.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/7_ResimBul.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/8_HaberEkle.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/9_etiketIslemleri.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/bugun.js'), 'head'); 
    getJavascript(ResolveUrl('~/js/yaban.js'), 'head'); 
    getJavascript(ResolveUrl('~/embed/bitgravity/functions.js'), 'head'); 
} 
相關問題