动态(2级)Javascript / CSS加载IE6

时间:2010-07-05 09:20:49

标签: javascript css dynamic internet-explorer-6

我正在尝试动态地将js(和css)文件包含到这样的网页中: index.html - > loader_a.js - > a_foo.js,a_bar.js,a_foo.css等。
虽然这在FF中没有问题(使用appendChild),但我无法在IE6中运行它。 我已经尝试了各种可用的解决方案(在这里添加了dom节点,ajax调用和eval以及更多来自http://ntt.cc/2008/02/10/4-ways-to-dynamically-load-external-javascriptwith-source.html)和there以及其他类似帖子#2013676但是它没有做它应该做的事情

当我用DebugBar检查时,我看到我的包含文件(例如a_foo.js)实际已加载,但其内容为空 - 在其他包含的文件(1级/直接)上显示此内容,所以我假设有问题...

我得到的“错误”总是未定义的对象,这是o / c b / c我调用的函数没有正确加载,所以没有多大的帮助。我在包含上没有任何错误。
我已经验证了javascripts,所以那些都可以。

有没有人有这个的最终解决方案? 如果有帮助,我可以重新创建我的测试并发布一些代码。

谢谢, 问候, 托马斯

示例HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<HTML lang=en><HEAD><TITLE>Test</TITLE>

<script type="text/javascript" src="mmtest_files/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="mmtest_files/multiload.js"></script>
<script type="text/javascript" >

function init2() {
  // using the data from the loaded js files
  var a= mmf("a");
  document.getElementById('status').innerHTML = "Variable set:" + a;

}

// magic...
include(['mmt.js'],init2);

</script>

<BODY >

<H2>Test me!</H2>
<SPAN id=status>status old</SPAN>

</BODY></HTML>

JS 1是来自答案1的多重载荷

JS2是一个测试包括:

功能mmf(param)     {         return“Called with”+ param;     }

1 个答案:

答案 0 :(得分:1)

您需要在ie中使用document.write,以便并行加载脚本。

请参阅:Loading Scripts Without Blocking

我有一个脚本btw:Loading Multiple Javascript Files In Order Asynchronously

(可能需要在Chrome中增加一些功能)


<强>更新

有一个回调函数,它是可选的。它可用于将依赖脚本耦合到文件。 EG:

function myjQueryCode() {
   // ...
}

include(['jquery.js','jquery-ui.js'], myjQueryCode);

这样,你的jquery依赖代码将在文件加载后运行。