2011-06-09 39 views
0

我使用AJAX將一些內容加載到頁面,並且該內容中包含一些jQuery(document).ready()代碼。我需要ready函數中的東西來執行,但我不能修改實際的代碼,但只能使用服務器通過AJAX提供的內容。手動運行所有jQuery /原型document.ready函數

如何在jQuery 1.4+/Prototype中觸發這些函數?

基本上,我需要做的是從HTML響應執行內嵌JavaScript代碼。

回答

0

您可以嘗試一個eval(代碼)來自其他來源的代碼。在使用Ajax時,您必須指定您期望的輸出類型(用於jQuery Ajax調用的dataType)。這可以是xml,json,腳本或html。除非你在做JsonP並且你導入一個腳本,否則其他數據類型基本上都是文本,你需要對它們進行評估才能執行它們。一旦你評估()他們來自其他來源的功能將在你的全球環境中可用。

+0

我從服務器獲得的內容是html,其中包含js,所以eval()會觸發語法錯誤? 我需要從html響應中執行內嵌JavaScript。源是隻讀的。 – srgb 2011-06-13 05:01:18

+0

然後嘗試使用curl獲取內容並在php中回顯它,生成包含您的代碼和其他代碼的頁面,甚至可以解析它以僅獲取js代碼。但這不再是ajax了。 – 2011-06-13 17:12:34

+0

「dataType:html」的jQuery幫助說:「包含的腳本標記在插入到DOM中時被評估。」 – Alnitak 2011-06-14 06:16:50