2014-04-01 78 views
0

我有一個字符串在HTML應該後裝入正文。評估一個後加載的腳本

var str = new String("<span>Hello</span><script>window.alert('hello');</script>"); 
    document.getElementsByTagName('body')[0].innerHTML=str; 

但警報沒有來。所以我補充說:

for(i=0;scr=document.getElementsByTagName('body')[0].getElementsByTagName('script')[i];i++) { 
    eval(src.innerHTML); 
    }; 

但即使它不起作用。你能解決我的問題嗎?

+0

'src'從哪裏來? 「scr」從哪裏來? – chris97ong

+0

有了第一個解決方案,「hello」這個詞最終在頁面上出現了嗎? – stUrb

回答

0
document.getElementsByTagName('body')[0].innerHTML="<span>Hello</span><script>window.alert('hello');<\/script>"; 
var alert_func = document.getElementsByTagName('script')[0].innerHTML 
if(alert_func.indexOf("alert") != -1) { 
    eval(alert_func); 
} 

此代碼將首先設置<body>標籤的innerHTML來<span>Hello</span><script>window.alert('hello');</script>。然後變量alert_func將存儲<script>標籤之間的內容。如果alert_func中有「alert」字樣,我們將評估<script>標籤之間的任何內容併發出警報。

+1

你也可以解釋爲什麼這應該起作用嗎?只是傾銷一些代碼行並不是很有幫助。 – nwellnhof