父頁面擷取子頁面的內容,頁面擷取內容
需求說明:兩個JSP頁面,父頁面需要子頁面的內容,但子頁面是隱藏的,具體來說,子頁面是一系列的模板,父頁面要通過id來擷取這些模板,不願意通過<include>方式匯入,因為如果模板過多,就導致整個父頁面太大,載入緩慢,以下兩個方案,不知有沒有解決這個問題.
1,通過ajax方式
實現過程:通過ajax請求到子頁面中,子頁面擷取參數id使用java和js變數的互動後,返回需要的模板資訊
缺點:把js變數轉換成java變數比較麻煩,需要使用form表單來提交,而且jsp中的java指令碼是在伺服器端啟動並執行,需要伺服器端資源開銷,而且增加了互動次數
2,通過iframe 引入
實現過程:使用iframe引入子頁面,然後通過$(iframe.contents().find("#"+id)[0]).val()獲得需要的模板.
缺點:不確定iframe是不是可以消極式載入,如果也想<include>一樣把整個頁面都匯入進來,這個方法也不算ok.
歡迎讀者網友提出自己的見解和方法,以期改進.
java 父頁面獲得子頁面iframe的方法
樓主會用jquery嗎,可以使用jquery來從父頁面擷取子頁面的iframe中的對象資料,也可以從子頁面擷取父頁面的頁面資料,參見如下說明:
父頁面訪問子頁面內容:
var $iframe = $($('#iframe_editImage')[0].contentWindow.document.body);$iframe.find("#uploadImgfile").val();
子頁面訪問父頁面內容:
alert($('body', parent.document).html());
jquery 在父頁面中怎擷取子頁面中的對象
兩點
1.既然你用jQuery了,為什麼還要用getElementById()來擷取元素?況且,擷取iframe中元素也沒這麼麻煩啊
$("#id_iframe").contents().find("#id_button_test");這不就好了。。
2.你這部分代碼是寫在a.jsp頁面中了吧?那我估計之所以不運行,是因為你註冊點擊事件的時候,b.jsp頁面還沒有載入完。所以儘管你調試的時候能輸出,但是代碼裡是註冊不上的。把這段代碼寫在b.jsp的window.onload事件中