【发布时间】:2010-07-05 21:30:59
【问题描述】:
我正在尝试将 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 我调用的函数没有正确加载,所以没有多大帮助。我没有收到关于包含的任何错误。
我已经验证了 javascript,所以应该没问题。
有人对此有最终的解决方案吗? 如果有帮助,我可以重新创建我的测试并发布一些代码。
谢谢, 问候, 托马斯
示例 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(参数) { 返回“调用”+参数; }
【问题讨论】:
标签: javascript css dynamic internet-explorer-6