2

我有一个 ASP.NET 网站。非常巨大!

我所做的最新添加,一切都启用了 JavaScript/AJAX。

我将 HTML 和 JavaScript 代码从服务器发送回客户端,客户端会将 HTML 注入 DIV - 并使用以下命令将 JavaScript 注入 DOM:

$('<script type="text/javascript">' + script + '</sc' + 'ript>').appendTo(document);

或这个:

var js = document.createElement("script");
js.setAttribute("type", "text/javascript");
js.text = script;
document.appendChild(js);

在我自己的开发机器上,可以访问注入的 javascript,并且我能够执行注入的 JavaScript 函数。

当我部署到我的测试环境时,)我们有一个内部域名,例如 www.testenv.com)我收到 JavaScript 错误。

我试图将问题隔离到一个小页面中,在其中注入 alert("sfdfdf"); 在页面的底部,这工作正常。

是否有任何政策设置禁止这样做?

4

2 回答 2

5

不要将Child 附加到“文档”;<script> 不能去那里,你应该根据 DOM Level 1 Core 规范得到一个 HIERARCHY_REQUEST_ERR DOMException。可以进入 Document 对象的子列表的唯一元素是单个根 documentElement,<html>。

而是将脚本附加到文档内的元素,例如 <body>。

于 2009-02-03T15:45:49.953 回答
0

动态创建元素应该可以正常工作,脚本将在插入 DOM 时执行。为了具体回答您的问题,没有禁止脚本注入的直接策略设置,但是,如果您在动态插入的脚本中使用 ajax 调用,您可能会遇到跨域限制。

如果您可以发布错误,也许您插入的“脚本”元素的来源将有助于调试问题:)

于 2009-02-03T15:41:33.033 回答