【发布时间】:2014-12-09 13:05:35
【问题描述】:
我正在使用 Jquery/JS 将外部脚本附加到 div。我不能在头部包含外部脚本。我需要将它附加到使用 Jquery 创建的 div 中。外部脚本异步加载,使用 document.write,我无法控制该脚本。
我最终想要的是加载外部脚本并将其动态附加到 div 中。我正在使用 JavaScript 即时创建这个 div。所以这只能在js中完成,而不是在html中。如果我将外部脚本静态地放在 html 中,它会起作用,但不会在 div 容器内呈现内容。但是,当我动态放置它时,它就不起作用了。
这是我尝试过的。但我看不到脚本或对象被附加到 div 中。我需要将脚本放入 div 中,以便在其中呈现内容。
// this is the external code
// the externalscript.js takes in the value of externalprop1 & renders an iframe inside "div2" so externalobject has to be defined before the externalscript.js is called.
var externalobject = {
externalprop1 = "prop1"
};
var newscript = document.createElement("script")
newscript.type = "text/javascript"
newscript.src = "externalscript.js"
// end of external code
dynamic_content = '<li>';
dynamic_content += '<div class=" div1">';
dynamic_content += '<div class="div2" id= "div2here"></div>';
dynamic_content += '</div>';
dynamic_content += '</li>';
我已将 dynamic_content 附加到正文中,然后我正在做:
$('#div2here').append(newscript);
【问题讨论】:
-
如果外部脚本使用
document.write(),它的目的是在解析时加载,而不是在页面解析后加载。您根本无法使用它,因为它会打开一个新文档并清除旧文档的所有内容。 -
也许获取原始脚本并使用其他适当的 DOM 操作查找/替换所有
document.write调用 -
@Teemu 所以你的意思是我不能将它动态附加到 div2?
-
我无法控制外部脚本,也无法操纵它。还有其他出路吗?
-
可能,如果您提供更多有关情况的上下文(例如脚本是什么),您可以得到更好的帮助。
标签: javascript jquery dom iframe