2009-02-03 18 views
2

我有一個ASP.NET網站。非常巨大!向DOM添加一段javascript失敗 - 但不在開發中

我所做的最新補充,一切都啓用了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錯誤。

我試圖將問題隔離到一個小頁面,在那裏我注入了警報(「sfdfdf」);在頁面的底部,並且工作正常。

有沒有禁止這樣的政策設置?

+0

有什麼錯誤? – AnthonyWJones 2009-02-03 15:30:12

回答

5

不要appendChild方法「文件」的「劇本」元素的可能來源; < script>不能去那裏,你應該根據DOM Level 1核心規範得到HIERARCHY_REQUEST_ERR DOMException。可以進入Document對象的子列表的唯一元素是單根文檔元素,< html>。

將腳本附加到文檔內的元素上,例如< body>。

0

動態創建元素應該可以正常工作,腳本將在插入到DOM時執行。爲了專門回答你的問題,沒有直接的策略設置禁止腳本注入,但是,如果你在動態插入腳本中使用ajax調用,你可能會遇到跨域限制。

如果你能發佈的錯誤,而你插入這將有助於調試問題:)

相關問題