很多初學Easyui的人都會遇到這樣的問題,那就是在頁面中采用iframe標簽後,當直接指定src頁面是一個采用了easyui組件的頁面,當parent窗口需要訪問iframe中的對象時,不應該采用document的訪問,而應該訪問iframe的對象,這樣才能用easyui中的標准api訪問對象的屬性和方法,具體訪問方法如下兩種:
1、document.getElementById('ss_frame').contentWindow.$('#dgMANUF').datagrid('getSelected');
2、$.find('iframe')[0].contentWindow.$('#dgMANUF').datagrid('getSelected');
請不要使用$('#ss_frame').contentWindow.$('#dgMANUF').datagrid('getSelected');這樣的代碼,因為在JQuery中無法正確返回對象,系統會提示“無法獲取屬性“nodeName”的值: 對象為 null 或未定義 Error”之類的錯誤。
訪問對象的問題解決以後就會帶來另外一個問題,iframe的刷新問題,因為可能大家會采用動態頁面,我們看到很多解決方案說只要將對象的src修改就可以正確顯示,但是我們發現系統會有一個延遲,而這對於腳本客戶端會有致命的錯誤。解決的方法其實很簡單,那就是直接讓iframe的對象輸出一個提示,直到頁面加載完畢。具體解決代碼如下:
document.getElementById('ss_frame').contentWindow.document.write('loading...');