2013-03-14 70 views
-1

例如:的JavaScript的innerHTML不工作

<html> 
    <div id="media">123</div> 
    <a href="javascript:void(0)" onClick="return fun()">Click</a> 
    <script type="text/javascript"> 
     function fun() { 
      document.getElementById("media").innerHTML = '<script type="text/javascript">alert("working");<\/script>'; 
     } 
    </script> 
</html> 

後您單擊該警報不顯示。

alert("working");只是一個例子。我想要它完成一項工作其他javascript 。我有一個工作要通過AJAX處理應該使用innerHTML

+0

http://stackoverflow.com/questions/1068517/why-cant-i-add-a-string-containing-a-script-tag-to-innerhtml-in-ie的可能dupplicate。 – antoyo 2013-03-14 18:56:21

回答

6

HTML spec指定不應執行使用innerHTML插入的腳本標記。這是一個安全考慮。

如果您確定了方法,仍然可以執行此操作,例如將其添加到img處理程序或創建腳本元素,將其插入DOM並更改其text屬性。我不會詳細說明這些,因爲這樣做通常被認爲有點粗略。如果您不嘗試注入腳本,則應該在腳本元素中包含腳本元素。

0

你的JS函數應該是這樣的。

function fun() { 
    alert("working"); 
} 
+0

警報(「工作」)只是一個例子。我希望它能完成其他一項工作javascript – user2171180 2013-03-14 19:12:10

1
<script type="text/javascript"> 

function fun() { 
    alert("working"); 
} 
</script> 

<div id="media">123</div> <a href="javascript:void(0)" onClick="fun();">Click</a> 
+0

alert(「working」);僅僅是一個例子。我希望它能完成其他一項工作javascript – user2171180 2013-03-14 19:14:44

+0

@ user2171180那麼只需在fun()函數中輸入你的javascript代碼,不需要用innerHTML插入它。爲什麼需要? – user2019515 2013-03-14 19:15:46

+0

@ user2171180。究竟。運行你的JavaScript的樂趣功能。你永遠不應該把它插入到innterHTML中。我的答案仍然可以解決您的問題 – 2013-03-14 20:07:02