2010-02-22 75 views
0

我在通過iframe加載頁面後遇到了jQuery問題。jQuery iframe問題

這是它的工作原理。 Mainpage.php中有一個iframe用於上傳照片/文件。在Mainpage.php上有一個div用來顯示照片/文件。 div被ajax調用填充,該調用檢索HTML並將其放入div中。當我來到Mainpage.php並且點擊運行Ajax並加載照片/文件的照片鏈接時,一切正常。

問題:我有一個顯示iframe的「新」按鈕。在iframe頁面內部,我使用表單上傳將照片上傳到服務器,如果成功,我回顯一個JavaScript字符串,該字符串運行相同的Ajax代碼以將照片顯示在適當的div中。一切正常,它會更新Mainpage.php中的div,但是,照片會顯示,但jQuery功能不再有效,所以我的桌面功能停止工作(錯誤:文檔爲空),並且照片不顯示與他們的邊界(我用css綁定到一個類,jQuery適用於元素來顯示邊框)。我爲我的照片庫使用visuallightbox,用於顯示圖像的jQuery JavaScript不再有效。我得到的照片加載錯誤是:"uncaught exception.....NS_ERROR_INVALID_POINTER"

任何想法如何解決/解決這個將不勝感激。謝謝。

回答

0

很難確切地說出你在說什麼,但我懷疑這個問題可能與iframe中運行的代碼(在POST響應中運行的代碼)位於不同的頁面,其中jQuery主對象與父頁面中的代碼不同。

嘗試設置事件,以便iframe代碼調用父級以將信息傳遞給它。請注意(特別是在IE中)你真的不想在你的iframe中實例化對象,然後將它們傳遞給父窗口。只要iframe被垃圾回收,IE會在您從父窗口引用這些對象時開始出現異常。

請記住,您可以從iframe中獲取父窗口的jQuery對象,如window.parent.$

+0

謝謝Pointy。我發現問題與使用jquery的第三方編寫的.js文件有關。按照你的建議,我找到了父div,然後找到了能夠正確顯示的唯一方法就是放置超鏈接並重新加載html。 – Ronedog 2010-02-23 00:06:51