2011-10-15 44 views
0

說我有一個插入頁面後的JavaScript函數,然後我可以調用該函數。例如,讓事情變得簡單。說我做一個Ajax調用來獲取腳本的標記,並返回以下:是否可以在頁面加載後添加JavaScript並執行它

<script type="text/javascript"> 
function do_something() { 
    alert("hello world"); 
} 
</script> 

如果我那麼這個標記添加到DOM我可以叫do_something()以後呢?

我使用jQuery JavaScript框架。

回答

2

更新對不起,我錯過了你使用jQuery。你可以做這個用字符串你得到回:

$(str).appendTo(document.body); 

...之後就可以立即撥打do_something; live example


原來的答覆:

如果在另一端(接收部分Ajax調用)的控制的時候,只是在用它與直JavaScript代碼回覆,並取代AJAX使用script元素:

var script = document.createElement('script'); 
script.src = /* ...your URL...*/; 
document.body.appendChild(script); 
do_something(); 

的腳本解析和執行appendChild後,只要你把它添加到文檔中,你可以從上面的,我已經高興地叫do_something看執行。

如果您願意,還可以內聯添加腳本文本。

0

只需使用$('head').append('<script>...')即可將腳本添加到頁面。 jQuery有特殊的例程來處理這個問題,解析腳本標籤併爲所有瀏覽器適當地處理它們。

3

您可以使用jQuery的$.getScript(...)函數。大多數情況下,這會滿足在加載頁面後異步加載JavaScript的需求。

這裏是根據文檔:http://api.jquery.com/jQuery.getScript/

基本上你可以做這樣的事情

$.getScript("http://myhost.com/scripts/myscript.js", function(){ 
    //at this point the script has been attached to the page and processed 
    //you can use it here 
}); 
相關問題