2012-02-24 27 views
1

嘗試this如何追加將被執行的<script>?

<a href="#" id="showAlert">Click me</a> 
<div id="pasteContent"></div> 
​ 
var elemFunc = '<script>alert("myString");</script>'; 

$("#showAlert").click(function() { 
    $("#pasteContent").html(elemFunc); 
}); 
​ 

我想什麼做的是將字符串警報(MyString的); (這是一個腳本),必須執行......我該怎麼辦?這不正確嗎?

+0

你爲什麼不只是執行您的腳本從點擊處理程序? – m90 2012-02-24 14:28:51

+0

對於許多動機...很難馬上解釋... – markzzz 2012-02-24 14:29:34

+0

我是不是要瘋了,或者已經沒有人注意到它的上面介紹的一般方式(即除了任何其他代碼的問題)永遠不會起作用,因爲腳本是追加''

0

嘗試白衣這樣

var elemFunc = $('<script>') 
    .attr('type', 'text/javascript') 
    .html('alert("myString");'); 

$("#showAlert").click(function() { 
    $("#pasteContent").append(elemFunc); 
}); 
0

一個jQuery腳本對象試試這個:

var elemFunc = '<script>alert("myString");</' + 'script>'; 

如果你有你的HTML裏面的JS

0

試試這個:

var s = document.createElement("script"); 
s.type = "text/javascript"; 
s.src = "http://somedomain.com/somescript"; 
$("head").append(s); 

請注意,scrip t會加載,你可以訪問裏面的變量,但是你不會在DOM中看到實際的標籤。

+0

我看到我的DOM被用'<腳本類型=「文/ JavaScript的」 SRC =「http://somedomain.com/somescript」>'更新,但腳本贏了,不會被執行。 – Rempargo 2014-12-17 03:39:10

0

既然你要去相當於一個eval,和eval是邪惡的,你可以使用外部腳本和$.getScript(),通過Ajax加載它...

$.getScript("http://scriptURL.com/script.js", function(){ init(); });