2009-09-16 135 views
4



如何通過jquery插入javascript代碼?

<div id="example"> 

</div> 


<script type="text/javascript"> 

    function insert() { 
    var data = '<script type="text/javascript"> function test() { a = 5; }<\/script>'; 
    $("#example").append(data); 
    } 

    function get() { 
    var content = $("#example").html(); 
    alert(content); 
    } 


</script> 


<a href="#" onclick="insert();">INSERT</a> 

<a href="#" onclick="get();">GET</a> 


</body> 
</html> 

什麼我想要做的:

當我在插入點擊,我想插入這個代碼爲例子格:

<script type="text/javascript"> function test() { a = 5; }<\/script> 

當我點擊獲取,我想獲得代碼,我在哪裏在那裏。

但是當我點擊插入,然後得到,沒有代碼..哪裏是問題?謝謝

回答

0

您是否使用類似Firebug的工具瀏覽DOM的實時版本來檢查代碼?如果您希望在常規瀏覽器窗口中看到您的代碼,則不會這樣做,因爲腳本標記在插入時實際上會被解析,並且腳本標記在HTML頁面中不是可見元素。

+0

是的,但它可以插入JavaScript代碼與jQuery的頁面,而不是解析?我想插入它像原始字符串或文本。 –

4

根據您對Adam Bellaire的評論,您希望腳本標記顯示爲普通文本。你要做的是用HTML entities對文本進行編碼,這將阻止瀏覽器將其作爲普通的HTML進行處理。

var enc = $('<div/>').text('<script type="text/javascript"> function test() { a = 5; }<\/script>').html(); 
    $("#example").append(enc); 
1

這工作:

function insert() { 
var data = '<script type="text/javascript"> function test() { a = 5; }<\/script>'; 
$('#example').text(data); 
} 

function get() { 
var content = $('#example').text(); 
alert(content); 
}