【问题标题】:Dynamically adding scripts to IE with(?) appendchild [closed]使用(?) appendchild 将脚本动态添加到 IE [关闭]
【发布时间】:2012-05-28 12:28:22
【问题描述】:

我已经建立了this 页面。

该页面包含一个表格,当您单击特定行时,该表格会加载绘制特定图形的脚本。

这意味着我需要附加多个脚本(而不是同时 - 取决于用户)。

我使用过 Jquery 的 appendchild,但注意到它在 IE 中效果不佳(加载第一个然后卡住)。

我已经浏览过这里有相同内容的帖子并尝试过..

我尝试使用:

var body = document.getElementsByTagName('body')[0];
var script = document.createElement('script');
script1.text = myscript;
body.appendChild(script);

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = 'jQuery/head/dynamic_graph.js';
head.appendChild(script);

甚至

$(script).appendTo($("#graphMain" + id));

仍然适用于除 IE 之外的所有浏览器...

有什么建议吗?

编辑:

也试过了

$.getScript("jQuery/head/dynamic_info.js", function(data, textStatus, jqxhr) {
    });

而 IE 无法执行..

【问题讨论】:

  • 我会重写你的标题,这样浏览的人就可以看到问题是什么(目前它没有意义)——你可能会得到更多的意见/答案。我已经编辑了您的帖子以改进语法/拼写,但我不知道预期的标题是什么。
  • 您为什么要尝试动态添加脚本,而不是直接链接到它?您应该做的是在页面加载时加载准备好的函数,并在添加新行时动态调用这些函数。
  • 请将变量名从“script”更改为“myscript”之类的其他名称
  • @MarkSchultheiss,命名变量脚本有什么问题?
  • 这只是让下一个必须查看此代码的开发人员感到困惑。同样适用于“head”和“body”变量 - 这只是我的意见,我知道这不是我们所要求的,这只是一个建议。

标签: jquery internet-explorer appendchild


【解决方案1】:

谢谢大家, 但经过 10 小时的头发羽化.. 我想到了.. 显然 - IE 阻止附加多个具有相同名称的脚本 - 所以我把每个脚本的名字都改成了唯一的名字。

我用过

$.getScript("jQuery/head/dynamic_info"+id+".js", function(data, textStatus, jqxhr) {
});

其中 Id 是唯一编号(在这种情况下为行号)

【讨论】:

    【解决方案2】:

    如果您正在尝试加载外部脚本,并且您正在使用 jQuery,那么似乎最明智的解决方案是使用 $.getScript 来加载文件,而不是尝试使用 .appendChild 来滚动您自己的解决方案或任何其他类似的方法。

    【讨论】:

    • 嗨 Jonathatan,我正在使用 $.getScript 加载脚本(示例中为 myScript)。但是在加载之后,我使用 appendchild 将脚本包含在代码中。你有其他建议吗?
    • @user1392330 您不必附加任何内容。 $.getScript 在加载代码时为您执行代码。没有什么可附加的。你能分享一个你试图引入文档的代码示例吗?
    • 谢谢,试过了,还是卡住了!我还能尝试什么?我更新了问题..
    • 您需要比“IE 卡住”或“IE 失败”更具体。您的网络流量是什么样的?您可以通过按 F12 进入网络选项卡,单击“开始录制”,拨打$.getScript(),然后点击“停止录制”来观看它。然后检查您的日志。文件是否被加载?它会被执行吗?尝试在其顶部放置 alert('Loaded'); 进行测试。
    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 2013-04-22
    • 2020-05-07
    • 2012-04-28
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多