只能說才疏學淺,就這個問題折磨了我好久,快到要交差的時候才解決。
從發現這個問題我試了三種解決方式,首先當然是要用公共js來解決了,把要調取的方法寫在同一個js文件里面,然后兩個頁面同時調用,如果函數簡單還好,但是如果函數里面的參數牽扯很多的話,那彎彎繞繞的我恨不得把整個頁面都搬過去,所以我嫌麻煩,放棄了。第二種方法就是用iframe框架,讓兩個頁面有關系,然后通過父子頁面的關系就可以調取方法了,因為以前從來沒有接觸過iframe,使用的時候各種各樣的問題都出來,然后我又放棄了。這樣不好,沒有毅力!然后最后一種方法是jQuery里面的load,可以傳參,但是我也沒整明白到底行不行,所以也沒用。最后繞來繞去是在不行了我還是用了iframe,整了一下午,終於解決了。
我先在a頁面里面引入一個iframe標簽,我剛開始的想法是想用事件來改變iframe里面的src屬性,但是總是沒有打開指定的那個頁面,看來看去才發現我在寫iframe標簽的時候把src屬性置為空,等到我測試在里面隨意寫了一個地址,竟然就可以了
<iframe id="myIframe" name="childPage" src="choose_Dept.html" width="100%" frameborder="0" height="100%"></iframe>
然后我打開了我需要的那個頁面b頁面,
a頁面:
$("#myIframe").attr("src","choose_Empl.html"); $("#myIframe").css({ "position":'fixed', "left":"0", "top":"0", "width":"100%", "height":"100%" });
但是因為我把iframe標簽寫在a頁面的最下面,所以應該讓這個iframe置頂,也就是給它一個定位讓它在最上面,這樣就成功了,然后我在b頁面調取a頁面的方法再關閉b頁面,用parent.window.方法()就可以調用到
b頁面:
parent.window.setEmpl();
調用方法成功以后,就是要把iframe關掉,重新回到a頁面,但是在b頁面怎么關掉a頁面里面的iframe,再調用一個方法不就行了,把關掉iframe的方法寫在a頁面的函數里,一樣的原理。
a頁面:
//關閉iframe框架 function closeIframe(){ $("#myIframe").attr("src",""); $("#myIframe").css({ "width":"0", "height":"0" }); }
b頁面:
parent.window.closeIframe();
就這樣,這個問題也算解決了,但是解決問題的過程不太美妙,東想西湊,總是想找最簡單的方式解決,還是要鑽研每一個方法,爭取都學明白。
這只是針對自己的一次整理,想把方法記錄下來,下次遇到這種問題的時候就可以解決了。歡迎各位大神指正。