ipage.html,裡dom:
srcpage.html,裡dom:
早上吃早點,中午約會吃飯,下午k歌,晚上和哥哥瞎折騰
下面討論ie下js是怎麼操作以上兩個頁面,再討論firefox的做法,最後給出相容ie,firefox瀏覽器操作iframe物件的方法。
一、ie下訪問操作iframe裡內容
大家都知道iframe是非標準html標籤,它是由ie瀏覽器推出的多布局標籤,隨後mozilla也支援了這個標籤。(閒話,嘿嘿)
1. ie通過document.frames["iframename"]獲取它,例子:我們在ipage.html裡輸出srcpage.html裡h1的內容,js如下:
alert(document.frames["iname"].document.getelementsbytagname_r('h1')[0].firstchild.data);
window.onload = (function () );
2. ie另一種方法contentwindow獲取它,**:
window.onload = (function () );
此方法經過ie6,ie7,firefox2.0,firefox3.0測試都通過,好事啊!嘿嘿。(網上一查,發現mozilla firefox iframe.contentwindow.focus緩衝區溢位漏洞,有指令碼注入攻擊的危險。後來聽說可以在後台防止這樣的事情發生,算是松了口氣。不過還是希望firefox新版本可以解決這樣的危險。)
3.改變srcpage.html裡h1標題內容,**:
iobj.document.getelementsbytagname_r('h1')[0].innerhtml='我想變成她一天的一部分';
通過contentwindow後訪問裡面的節點就和以前一樣了。
二、firefox下訪問操作iframe裡內容
mozilla支援通過iframeelmref.contentdocument訪問iframe的document物件的w3c標準,通過標準可以少寫乙個document,**:
var iobj = document.getelementbyidx_x('iid').contentdocument; alert(iobj.getelementsbytagname_r('h1')[0].innerhtml='我想變成她一天的一部分');
alert(iobj.getelementsbytagname_r('p')[0].firstchild.data);
相容這兩種瀏覽器的方法,現在也出來了,就是使用contentwindow這個方法。嘿嘿!操作iframe是不是可以隨心所欲了呢?如果還覺得不爽,你甚至可以重寫iframe裡的內容。
三、重寫iframe裡的內容
var iobj = document.getelementbyidx_x('iid').contentwindow;
iobj.document.designmode = 'on';
iobj.document.contenteditable = true;
iobj.document.open();
iobj.document.writeln('
');iobj.document.close();
跨域iframe獲取高度
需求背景 父頁面內嵌乙個跨域的子頁面,但是子頁面的內容是未知的,意味著子頁面的高度也是未知的,父頁面的樣式不能定死高度,不然會出現雙重滾動條 子頁面有滾動條,父頁面也會出現滾動條 解決方案 公司裡大神出的方案,跨域的b.html頁面中再嵌入乙個 頁面agent.html,頁面跟最外層的父頁面a.ht...
jquery跨域獲取元素
1.有時候我們頁面中要加入乙個或者多個iframe,這個時候難免會需要跨域獲取元素,例如,window和iframe間相互獲取資料引數,2.window獲取iframe中的某個元素,引入jquery,frame i i指的是頁面中frame的index window.frames 0 documen...
js 跨域獲取cookie
在通常情況下,在不同域下的cookie不能相互獲取 cookie的四個可選屬性 1 cookie的生存期屬性 expires 預設情況下,cookie只在瀏覽器會話期存在.退出瀏覽器就丟失 可以用expires設定時間 退出瀏覽器後就不會丟失並存為客戶端瀏覽器的cookie檔案 過了時間後cooki...