如何在html头部动态添加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')

从下面的代码中,我尝试动态加载javascript文件TestJScript.js,加载后,我希望调用javascript函数LoadData,该文件中存在该函数。但我得到错误,请检查图像

注意:错误仅在IE-8.0.6001更新0上获取

请建议我更正,这样它将工作从6到所有版本的IE。 或任何其他解决方案

如果它需要任何windows更新。请让我知道

请不要建议使用JQUERY代码

Javascript文件代码:

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;
        }