Javascript 如何仅在加载所有脚本时调用函数?

Javascript 如何仅在加载所有脚本时调用函数?,javascript,asp.net-mvc,dependency-management,Javascript,Asp.net Mvc,Dependency Management,我正在与客户共享一个脚本标记,以便在客户的网站上部署我的web应用程序 基本上通过这种方式,他可以将我的应用程序嵌入到他网站上的任何地方 我给他的脚本只调用我的MVC应用程序中的一个动作方法,并接收一个javaScript作为响应 作为第一步,返回的JavaScript将所有js和css引用(我的应用程序需要)插入客户端的head标记中 function createScriptElement(src) { var tmp = document.createElement("script

我正在与客户共享一个脚本标记,以便在客户的网站上部署我的web应用程序

基本上通过这种方式,他可以将我的应用程序嵌入到他网站上的任何地方

我给他的脚本只调用我的MVC应用程序中的一个动作方法,并接收一个javaScript作为响应

作为第一步,返回的JavaScript将所有js和css引用(我的应用程序需要)插入客户端的head标记中

function createScriptElement(src) {
    var tmp = document.createElement("script");
    tmp.src = src;

    var head = document.getElementsByTagName("head")[0];
    head.appendChild(tmp);
};
然后在第二步中,它将html内容写入一个动态div中

document.write(format("<div id='mycontainer'>{0}</div>{1}", AppHtml,initcalls ));
document.write(格式(“{0}{1}”,AppHtml,initcalls));
“initcalls”包含我的应用程序javascript中的初始函数,我希望它立即执行。所以我把它放在下面的脚本标签中

初始化调用的内容包括:

<script type=\"text/javascript\">     function icInitApp() { ..... }; </script>
函数icInitApp(){….};
问题是:我的应用程序中有一些依赖于js引用。在客户端页面中的head标记识别并加载js引用之前加载HTML

在head标记完全加载所有js引用之前,是否有任何方法保持我的(从而动态呈现)应用程序的init函数


我试着给setTimeout()5秒钟的时间,但这不是客户端接受的正确解决方案。

下面的链接讨论了类似的情况

您还可以尝试使用$(window).load()事件,因为这将在页面完全加载时触发

$(window).load(function(){
  //your code here
});

PS:请注意,您需要在页面中加载jQuery以使上述代码正常工作。

您可以尝试使用jQuery:

$(document).ready(function()){
     // Your code goes here
};

它在load内部调用代码,但是没有解决问题。我的应用程序仍然无法识别像LabJs、yepnope.js这样的js pluginI框架,但它给出了类似“不正确的令牌”这样的错误