星期三, 6月 11, 2008

從frame/iframe頁面存取主頁

前幾天雅痞學弟說要跨 frame 設定CSS,我想這應該需要靠JavaScript才做得到。今天抽空稍微試了一下,果然很容易。
假設分為二個frame,在一個frame用
var document1 =parent.frames[0].document;
就可以輕鬆存取另一個頁面的dom物件。

今天忽然想到,若是iframe呢?查了一下w3c school,可以用contentDocument屬性,也就是
var document1 = document.getElementById('iframe1').contentDocument;
可惜IE不支援。接著就只好找非標準的寫法,有解。
簡單地說,利用contentWindow屬性,同樣能找到document物件。
var document1 = document.getElementById('iframe1').contentWindow;
contentWindow屬性算是非標準,但Firefox其實也支援。上文中的 window.frames[frame名].document 的方式,把 iframe 當 frame 看待,感覺上怪怪的,而且又是IE only,您就別用了。

參考:
contentWindow at mozilla
contentWindow Property at msdn (在下強烈建議別用document.all這種非標準的寫法呀...)

沒有留言: