从下面的代码我试图动态加载javascript文件TestJScript.js并在加载后想要调用javascript函数LoadData()存在于该文件中。但我收到错误请检查图片。
注意:错误只能在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>
错误图片:
答案 0 :(得分: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 :(得分:0)
错误报告您正在加载的javascript文件中存在问题。所以问题不在于你如何动态加载javascript文件,而在于javascript文件本身。
答案 2 :(得分:0)
文件加载后看起来有问题。您确定文件本身没有语法错误。
另外,我建议您使用javascript文件的相对路径而不是绝对路径。
编辑:
试试这个:
function LoadJSFile() {
var script = document.createElement('script');
script.src = "C:\\TestJScript.js";
script.onload = function () {
LoadData();
};
document.getElementsByTagName("head")[0].appendChild(script)
}
答案 3 :(得分: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>
答案 4 :(得分: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;
}