我正在尝试使用JQuery / AJAX更新/插入新标签。脚本标记中的URL是来自另一个域(Web服务器)的URL,我无法控制。 Web服务器提供的结果在iframe中返回(同样,我无法控制响应的格式)。
我尝试了以下两种解决方案(请注意,Click按钮仅用于测试目的)。
第一个解决方案:
$(document).ready(function () {
$("button").click(function () {
var NewScript = document.createElement('script');
NewScript.type = 'text/javascript';
NewScript.src = 'http://www.contactedurl.com/query&callback=?';
$("#TDiv").append(NewScript);
});
});
第二个解决方案:
$(document).ready(function () {
$("button").click(function () {
var NewScript = document.createElement('script');
NewScript.type = 'text/javascript';
NewScript.src = 'http://www.contactedurl.com/query&callback=?';
var script = document.getElementsByTagName('script')[0];
script.parentNode.insertBefore(NewScript, script);
});
});
这两种解决方案都会生成以下警告消息,因此不会执行更新:
忽略了从异步加载的外部脚本调用document.write()。
我理解生成此消息的原因,以及为什么没有执行更新,但我无法找到任何解决此限制或替代解决方案的工作。
我想知道是否有人知道替代解决方案。
谢谢。
答案 0 :(得分:0)
你根本无法按照自己的方式去做。你必须正常包含脚本。
<div>
<script src="http://www.contactedurl.com/query&callback=?"></script>
</div>
或document.write
(尽管以这种方式这样做毫无意义):
<div>
<script>
document.write("<scr"+"ipt src='http://www.contactedurl.com/query&callback=?'></scr"+"ipt>");
</script>
</div>
其中<div>...</div>
是您希望输出的位置。
答案 1 :(得分:0)
jQuery有一个名为$.getScript()