2011-11-04 45 views
1

根據$ .ajax的jQuery文檔,「包含的腳本標記在插入到DOM中時進行評估」。當我使用ajax抓取對話框的內容時,對話框中又包含用於顯示ReCaptcha框的腳本標記,但添加到DOM時不會顯示ReCaptcha框。據FireBug稱,腳本標籤現在也從添加的內容中丟失。直接導航到對話內容顯示ReCaptcha就好了。包含在jQuery AJAX響應中的腳本標記在插入到DOM中時未被評估?

有誰知道爲什麼這可能會發生和/或知道工作?任何幫助將不勝感激。在行動

代碼可以在這裏看到:

https://dustinhendricks.com/

然後點擊 「立即註冊」。

回答

2

腳本是否嘗試執行諸如document.write()之類的操作?當動態加載時,這隻會在初始頁面加載時無效。

一般而言,包含在HTML中的innerHTML腳本不會在瀏覽器中得到一致的評估。爲了解決這個問題,jQuery實際上查找腳本標記並手動執行它們。

但這並不重要。即使jQuery沒有這樣做,腳本也會運行在與第一次加載頁面時通常不同的上下文類型中。它不再是真正的「內聯腳本」,並且許多第三方腳本都是以「內聯」的形式編寫的。你必須弄清楚腳本正在做什麼,並找到一種方法來用動態內容來調用它。

+1

Infinitesloop是對的。您鏈接到的腳本會執行「document.write('' );」使用來自http://code.google.com/apis/recaptcha/docs/display.html#AJAX的指示,而不是 – Naren

相關問題