如何在html头部动态添加javascript文件?
从下面的代码中,我尝试动态加载javascript文件TestJScript.js,加载后,我希望调用javascript函数LoadData,该文件中存在该函数。但我得到错误,请检查图像 注意:错误仅在IE-8.0.6001更新0上获取 请建议我更正,这样它将工作从6到所有版本的IE。 或任何其他解决方案 如果它需要任何windows更新。请让我知道 请不要建议使用JQUERY代码 Javascript文件代码:如何在html头部动态添加javascript文件?,javascript,html,Javascript,Html,从下面的代码中,我尝试动态加载javascript文件TestJScript.js,加载后,我希望调用javascript函数LoadData,该文件中存在该函数。但我得到错误,请检查图像 注意:错误仅在IE-8.0.6001更新0上获取 请建议我更正,这样它将工作从6到所有版本的IE。 或任何其他解决方案 如果它需要任何windows更新。请让我知道 请不要建议使用JQUERY代码 Javascript文件代码: function LoadData() { alert('ok')
function LoadData() {
alert('ok');
}
代码:
错误图像:请尝试此操作。
像这样:
$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...
});
});
该错误报告正在加载的javascript文件中存在问题。因此,问题不在于如何动态加载javascript文件,而在于javascript文件本身。文件加载后似乎出现了问题。您确定文件本身没有语法错误吗 另外,我建议您使用javascript文件的相对路径,而不是绝对路径 编辑: 试试这个:
function LoadJSFile() {
var script = document.createElement('script');
script.src = "C:\\TestJScript.js";
script.onload = function () {
LoadData();
};
document.getElementsByTagName("head")[0].appendChild(script)
}
您可以尝试以下方法:
<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>
若您使用的是c代码,那个么解决此脚本错误的另一个解决方案是通过c代码调用脚本。 代码: /
您是否正在使用IE和windows XP进行web开发?我很震惊。@prM可能是一台虚拟机,be只是在测试…@FaridNouriNeshat true!哦,还有xhtml,onload,src=C:\\..我正在制作使用WebBrowser控件的windows应用程序。因此我只依赖IE。bcoz我永远不会接触客户端机器来安装更新。你可以尝试加载中提到的脚本。正如我所说的,它不仅仅在IE-8上工作。我还添加了脚本文件代码。您是否尝试过直接在html中输入,以查看是否会出现错误?Husman,它适用于除IE-8之外的所有IE版本。我还添加了脚本文件代码。
<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>
/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;
}