2011-10-31 41 views
0
$.ajax({ 
     url: "test.html", 
     context: document.body, 
     success: function(){ 
     $(this).addClass("done"); 
     } 
    }); 

如何在test.html中運行javascript並使其工作?如何在ajax調用文件內運行javascript?

感謝 Abhinab

+0

這個例子沒有多大意義,但除此之外,使用'success:function(response)',將'response'作爲返回的html,以便操作它。 – yoda

+2

與[如何在由ajax響應返回的腳本標記內執行javascript]類似(http://stackoverflow.com/questions/978101/how-to-execute-javascript-inside-a-script-tag-returned-by -an-ajax-response) – kojiro

+0

你問是否可以在test.html中執行javascript _before_它從服務器發送到瀏覽器?如果是這樣,答案很簡單。你不能。 – Tomm

回答

0
function call_recursive(){ 
    var pages ["test1.html", "test2.html", "test3.html" ]; 

    while(pages.length() > 0){ 
     page = pages.pop();   
     $.ajax({ 
      url: page, 
      context: document.body, 
      success: function(){ 
       $("div#logger").append("<p>" + page " loded </p>"); 
      }, 
      error: function(){ 
       $("div#logger").append("<p class'error'>" + page " is not loded </p>"); 
      }, 
     }); 
    } 
} 

只是執行call_recursive

+0

你好,感謝您的回覆..但我想執行一個循環中的多個功能..就像在test.html中,其實將是一個PHP文件..包括更多的頁面...所以在包括我想顯示的每一頁on div ..page 1 loaded ..page 2 loaded 我希望我明確自己。 HOpe你可以幫助我:) 謝謝 ABHINAB – abnab

+0

你不需要在那些ajax頁面的JavaScript,只需追加你完成的ajax成功步驟。我會在一分鐘內更新我的答案 –

1

它不會真的這樣做。加載頁面時,瀏覽器會解釋頁面中的Javascript。在這種情況下,您不會在瀏覽器中加載頁面,而只是在ajax響應中獲取頁面。該響應HTML中可能有<腳本>元素,但沒有任何內容會對其執行任何操作。

我毫不猶豫的說這個,但你可能解析你的成功函數中的響應,找到所有的腳本元素,然後添加你想要的東西到你自己的頁面的DOM。這應該會導致腳本被提取和評估。我毫不猶豫地提起它,因爲它真的味道壞。如果我的任何開發人員都這樣做了,我們會進行艱難的談話。 ;-)

這可能有助於詳細說明你正在努力完成什麼,因爲可能有一種更優雅的方式來實現你的目標。

相關問題