我有一個控制網頁的功能,當存款發生時運行回叫功能。動態運行HTML/Javascript
在後端用戶可以添加腳本,圖像,iframe等,我的程序創建一個與控制存款回調相同的名稱的JavaScript函數,該回調運行用戶輸入到後端的代碼片段(腳本, iframe,html等)。
該函數應運行客戶端輸入到CMS中的所有HTML/Javascript段。我不知道用戶會輸入什麼內容,它可能是腳本或圖像或其他內容。
我無法運行HTML/Javascript的片段。
1)我不能創建一個腳本元素,並將其添加到DOM,因爲它可能是一個圖像或其他東西完全。
2)document.write可以工作,但會清除頁面。
3)我不能使用innerHTML,除了我動態添加的腳本之外,一切工作都正常。
4)我不能使用textNode,因爲當我將它們添加到DOM時它不運行腳本。
每次我動態地添加它,我得到的實際代碼打印到字符串,而不是代碼運行。
任何人都可以幫忙嗎?
謝謝。
p.s.
下面是一些HTML的一個例子,如果我能得到這個工作,其中trackingCode可能是一個圖像或腳本,那麼這就是我的回答:
<head>
<script type='text/javascript'>
function test(pixelData){
var body= document.getElementsByTagName('body')[0];
var trackingCode = '<script type=\'text/javascript\'>alert(\'[hi]\');</script>';
var div = document.createElement('div')
trackingCode = trackingCode.replace(/>/g,'>').replace(/</g,'<');
div.innerText = trackingCode;
document.documentElement.firstChild.appendChild(div);
body.appendChild(div);
}
</script>
</head>
<body>
<script type="text/javascript">
test();
</script>
<div id='whatever'>
</div>
</body>
腳本顯示爲文本。當我逃脫了JavaScript字符串時,它將其粘貼爲編碼文本,但沒有運行它。 – Eitan 2012-02-19 12:23:36