2014-06-23 74 views
0

從下面的代碼我試圖加載JavaScript文件TestJScript.js動態和加載後想要調用JavaScript函數LoadData()存在該文件中。但是我收到錯誤請檢查圖像。如何在html頭部動態添加javascript文件?

注:錯誤只得到IE-8.0.6001更新0

請給我建議修正,使得它將從6工作於所有版本的IE。 或其他任何解決方案。

如果它需要任何Windows更新。請告訴我。

請不要使用jQuery代碼提示

JavaScript文件代碼:

function LoadData() { 
    alert('ok'); 
} 

代碼:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
     <script> 

      function LoadJSFile() { 

        var js = document.createElement("script") 
        js.setAttribute("type", "text/javascript") 
        js.setAttribute("src", "C:\\TestJScript.js")      
        document.getElementsByTagName("head")[0].appendChild(js) 

        //call below function exist in TestJScript.js file 
        LoadData(); 
       }    

     </script> 
     </head> 
<body onload="LoadJSFile();"> 

</body> 
</html> 

錯誤圖片:enter image description here

+5

你在做使用IE和Windows XP Web開發?我感到震驚。 – prM

+0

@prM也許這是一個虛擬機,只是測試... –

+1

@FaridNouriNeshat真實!哦,和xhtml,onload,src =「C:\\ ...」。 – prM

回答

0

如果您使用的是C#代碼,那麼另一種解決方案來解決這個腳本錯誤是,調用腳本通過C#代碼。 代碼:

/

/Assiging html value to control 
       webBrowser.DocumentText = "HTML content";    
//Calling document load completed event 
       webBrowser.DocumentCompleted += webBrowser_DocumentCompleted; 

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     {     
      HtmlDocument htmlDocument = webBrowser.Document; 
      HtmlElement htmlElementHead = htmlDocument.GetElementsByTagName("head")[0]; 
      HtmlElement HtmlElementScript = htmlDocument.CreateElement("script"); 
      HtmlElementScript.SetAttribute("text", "C:\\TestJScript.js"); 
      htmlElementHead.AppendChild(HtmlElementScript); 
      htmlDocument.InvokeScript("LoadData"); 
      webBrowser.DocumentCompleted -= webBrowser_DocumentCompleted; 
     } 
0

試試這個http://dustindiaz.com/scriptjs。 像這樣:

$script('yui-base.js', function() { 
    // do stuff with base... 
    $script(['yui-anim.js', 'yui-connect.js'], function() { 
    // do stuff with anim and connect... 
    }); 
    $script('yui-drag.js', function() { 
    // do stuff with drag... 
    }); 
}); 
+1

yui圖書館會在IE6上工作嗎? – Husman

+0

是的,以上代碼適用於IE-6 – Sam

0

錯誤報告中,你加載javascript文件有問題。所以問題不在於如何動態加載JavaScript文件,而在於JavaScript文件本身。

+0

正如我所說的,它不適用於IE-8 Only。我也添加了腳本文件代碼。 – Sam

+0

你有沒有試過把直接放在你的html中,看看是否會出錯? – marty

0

看起來文件加載後會出現問題。你確定文件本身沒有語法錯誤嗎?

此外,我會建議您使用JavaScript文件的相對路徑,而不是絕對路徑。

編輯:

試試這個:

​​
+0

Husman,它適用於除IE-8以外的所有IE版本。我也添加了腳本文件代碼。 – Sam

+0

看看我的更新的答案 – Husman

+0

Husman,我試過我們的代碼,但它給了我同樣的錯誤。 – Sam

0

你可以嘗試以下方法:

<script> 
function LoadJSFile(src, callback) { 
    var js = document.createElement('script'); 
    js.src = src; 
    js.async = true; 
    js.onreadystatechange = js.onload = function() { 
     var state = js.readyState; 
     if (!callback.done && (!state || /loaded|complete/.test(state))) { 
      callback.done = true; 
      callback(); 
     } 
    }; 
    document.getElementsByTagName('head')[0].appendChild(js); 
} 
LoadJSFile('C:\\TestJScript.js', function() { 
    LoadData(); 
}); 
</script> 
相關問題