国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用javascript訪問操作iframe中的dom對象
我們通過Javascript可以動態(tài)加載操作iframe對象屬性src屬性指向的html頁面的內(nèi)容。這樣的操作需要提供兩個頁面,一個頁面是iframe所在頁面(頁面名稱:iPage.html),另一個頁面是iframe屬性src指向頁面(頁面名稱:srcPage.html)。
iPage.html,<body>里dom:
<iframe id=“iId“ name=“iName“ src=“srcPage.html“ scrolling=“no“ frameborder=“0“></iframe>
srcPage.html,<body>里dom:
<h1>IT技術(shù)論壇 http://www.itjishu.com</h1>
一、ie下訪問操作iframe里內(nèi)容
大家都知道iframe是非標(biāo)準(zhǔn)html標(biāo)簽,它是由ie瀏覽器推出的多布局標(biāo)簽, 隨后Mozilla也支持了這個標(biāo)簽。
1. ie通過document.frames["IframeName"]獲取它,例子:我們在iPage.html里輸出srcPage.html里h1的內(nèi)容,JS如下:
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
你會發(fā)現(xiàn)這樣在頁面里加入代碼,好像并沒有輸出想要的東東,為什么呢?這個我也沒有搞清楚,只是習(xí)慣性的加入了window.onload就有輸出了(注:JS代碼都寫到這個事件里去),知道的人士可否告訴我下。why?更改之后代碼ie下有了輸出,firefox下document.frames沒有定義錯誤提示:
window.onload = (function () {
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
2. ie另一種方法contentWindow獲取它,代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘).contentWindow;
alert(iObj.document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
此方法經(jīng)過ie6,ie7,firefox2.0,firefox3.0測試都通過,好事?。『俸?。(網(wǎng)上一查,發(fā)現(xiàn)Mozilla Firefox iframe.contentWindow.focus緩沖區(qū)溢出漏洞,有腳本注入攻擊的危險。
后來聽說可以在后臺防止這樣的事情發(fā)生,算是松了口氣。不過還是希望firefox新版本可以解決這樣的危險。)
3.改變srcPage.html里h1標(biāo)題內(nèi)容,代碼:
iObj.document.getElementsByTagName(‘h1‘)[0].innerHTML=‘我想變成她一天的一部分‘;
通過contentWindow后訪問里面的節(jié)點就和以前一樣了。
二、firefox下訪問操作iframe里內(nèi)容
Mozilla支持通過IFrameElmRef.contentDocument訪問iframe的document對象的W3C標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)可以少寫一個document,代碼:
var iObj = document.getElementById(‘iId‘).contentDocument;
alert(iObj.getElementsByTagName(‘h1‘)[0].innerHTML=‘IT技術(shù)論壇‘);
alert(iObj.getElementsByTagName(‘p‘)[0].firstChild.data);
兼容這兩種瀏覽器的方法,現(xiàn)在也出來了,就是使用contentWindow這個方法。
操作iframe是不是可以隨心所欲了呢?如果還覺得不爽,你甚至可以重寫iframe里的內(nèi)容。
三、重寫iframe里的內(nèi)容
通過designMode(設(shè)置文檔為可編輯設(shè)計模式)和contentEditable(設(shè)置內(nèi)容為可編輯),你可以重寫iframe里的內(nèi)容。代碼:
var iObj = document.getElementById(‘iId‘).contentWindow;
iObj.document.designMode = ‘On‘;
iObj.document.contentEditable = true;
iObj.document.open();
iObj.document.writeln(‘<html><head>‘);
iObj.document.writeln(‘<style>body {background:#000;font-size:9pt;margin: 2px; padding: 0px;}</style>‘);
iObj.document.writeln(‘</head><body></body></html>‘);
iObj.document.close();
這兩個對象的資料可參考:
注釋掉 iObj.document.designMode = ‘On’;
iObj.document.contentEditable = true;
效果沒有變,時間效率是注釋前的將近三倍。嘿嘿。那兩個對象是參考網(wǎng)絡(luò)一些人的寫法,重寫iframe里內(nèi)容,其實沒有必要用designMode和contentEditable,除非有其他的需求。
四、iframe自適應(yīng)高度
有了上面的原理要實現(xiàn)這個相當(dāng)簡單,就是把iframe的height值設(shè)置成它里面文檔的height值就可以。代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘);
iObj.height = iObj.contentWindow.document.documentElement.scrollHeight;
});
我們通過Javascript可以動態(tài)加載操作iframe對象屬性src屬性指向的html頁面的內(nèi)容。這樣的操作需要提供兩個頁面,一個頁面是iframe所在頁面(頁面名稱:iPage.html),另一個頁面是iframe屬性src指向頁面(頁面名稱:srcPage.html)。
iPage.html,<body>里dom:
<iframe id=“iId“ name=“iName“ src=“srcPage.html“ scrolling=“no“ frameborder=“0“></iframe>
srcPage.html,<body>里dom:
<h1>IT技術(shù)論壇 http://www.itjishu.com</h1>
一、ie下訪問操作iframe里內(nèi)容
大家都知道iframe是非標(biāo)準(zhǔn)html標(biāo)簽,它是由ie瀏覽器推出的多布局標(biāo)簽, 隨后Mozilla也支持了這個標(biāo)簽。
1. ie通過document.frames["IframeName"]獲取它,例子:我們在iPage.html里輸出srcPage.html里h1的內(nèi)容,JS如下:
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
你會發(fā)現(xiàn)這樣在頁面里加入代碼,好像并沒有輸出想要的東東,為什么呢?這個我也沒有搞清楚,只是習(xí)慣性的加入了window.onload就有輸出了(注:JS代碼都寫到這個事件里去),知道的人士可否告訴我下。why?更改之后代碼ie下有了輸出,firefox下document.frames沒有定義錯誤提示:
window.onload = (function () {
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
2. ie另一種方法contentWindow獲取它,代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘).contentWindow;
alert(iObj.document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
此方法經(jīng)過ie6,ie7,firefox2.0,firefox3.0測試都通過,好事?。『俸?。(網(wǎng)上一查,發(fā)現(xiàn)Mozilla Firefox iframe.contentWindow.focus緩沖區(qū)溢出漏洞,有腳本注入攻擊的危險。
后來聽說可以在后臺防止這樣的事情發(fā)生,算是松了口氣。不過還是希望firefox新版本可以解決這樣的危險。)
3.改變srcPage.html里h1標(biāo)題內(nèi)容,代碼:
iObj.document.getElementsByTagName(‘h1‘)[0].innerHTML=‘我想變成她一天的一部分‘;
通過contentWindow后訪問里面的節(jié)點就和以前一樣了。
二、firefox下訪問操作iframe里內(nèi)容
Mozilla支持通過IFrameElmRef.contentDocument訪問iframe的document對象的W3C標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)可以少寫一個document,代碼:
var iObj = document.getElementById(‘iId‘).contentDocument;
alert(iObj.getElementsByTagName(‘h1‘)[0].innerHTML=‘IT技術(shù)論壇‘);
alert(iObj.getElementsByTagName(‘p‘)[0].firstChild.data);
兼容這兩種瀏覽器的方法,現(xiàn)在也出來了,就是使用contentWindow這個方法。
操作iframe是不是可以隨心所欲了呢?如果還覺得不爽,你甚至可以重寫iframe里的內(nèi)容。
三、重寫iframe里的內(nèi)容
通過designMode(設(shè)置文檔為可編輯設(shè)計模式)和contentEditable(設(shè)置內(nèi)容為可編輯),你可以重寫iframe里的內(nèi)容。代碼:
var iObj = document.getElementById(‘iId‘).contentWindow;
iObj.document.designMode = ‘On‘;
iObj.document.contentEditable = true;
iObj.document.open();
iObj.document.writeln(‘<html><head>‘);
iObj.document.writeln(‘<style>body {background:#000;font-size:9pt;margin: 2px; padding: 0px;}</style>‘);
iObj.document.writeln(‘</head><body></body></html>‘);
iObj.document.close();
這兩個對象的資料可參考:
注釋掉 iObj.document.designMode = ‘On’;
iObj.document.contentEditable = true;
效果沒有變,時間效率是注釋前的將近三倍。嘿嘿。那兩個對象是參考網(wǎng)絡(luò)一些人的寫法,重寫iframe里內(nèi)容,其實沒有必要用designMode和contentEditable,除非有其他的需求。
四、iframe自適應(yīng)高度
有了上面的原理要實現(xiàn)這個相當(dāng)簡單,就是把iframe的height值設(shè)置成它里面文檔的height值就可以。代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘);
iObj.height = iObj.contentWindow.document.documentElement.scrollHeight;
});
我們通過Javascript可以動態(tài)加載操作iframe對象屬性src屬性指向的html頁面的內(nèi)容。這樣的操作需要提供兩個頁面,一個頁面是iframe所在頁面(頁面名稱:iPage.html),另一個頁面是iframe屬性src指向頁面(頁面名稱:srcPage.html)。
iPage.html,<body>里dom:
<iframe id=“iId“ name=“iName“ src=“srcPage.html“ scrolling=“no“ frameborder=“0“></iframe>
srcPage.html,<body>里dom:
<h1>IT技術(shù)論壇 http://www.itjishu.com</h1>
一、ie下訪問操作iframe里內(nèi)容
大家都知道iframe是非標(biāo)準(zhǔn)html標(biāo)簽,它是由ie瀏覽器推出的多布局標(biāo)簽, 隨后Mozilla也支持了這個標(biāo)簽。
1. ie通過document.frames["IframeName"]獲取它,例子:我們在iPage.html里輸出srcPage.html里h1的內(nèi)容,JS如下:
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
你會發(fā)現(xiàn)這樣在頁面里加入代碼,好像并沒有輸出想要的東東,為什么呢?這個我也沒有搞清楚,只是習(xí)慣性的加入了window.onload就有輸出了(注:JS代碼都寫到這個事件里去),知道的人士可否告訴我下。why?更改之后代碼ie下有了輸出,firefox下document.frames沒有定義錯誤提示:
window.onload = (function () {
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
2. ie另一種方法contentWindow獲取它,代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘).contentWindow;
alert(iObj.document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
此方法經(jīng)過ie6,ie7,firefox2.0,firefox3.0測試都通過,好事??!嘿嘿。(網(wǎng)上一查,發(fā)現(xiàn)Mozilla Firefox iframe.contentWindow.focus緩沖區(qū)溢出漏洞,有腳本注入攻擊的危險。
后來聽說可以在后臺防止這樣的事情發(fā)生,算是松了口氣。不過還是希望firefox新版本可以解決這樣的危險。)
3.改變srcPage.html里h1標(biāo)題內(nèi)容,代碼:
iObj.document.getElementsByTagName(‘h1‘)[0].innerHTML=‘我想變成她一天的一部分‘;
通過contentWindow后訪問里面的節(jié)點就和以前一樣了。
二、firefox下訪問操作iframe里內(nèi)容
Mozilla支持通過IFrameElmRef.contentDocument訪問iframe的document對象的W3C標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)可以少寫一個document,代碼:
var iObj = document.getElementById(‘iId‘).contentDocument;
alert(iObj.getElementsByTagName(‘h1‘)[0].innerHTML=‘IT技術(shù)論壇‘);
alert(iObj.getElementsByTagName(‘p‘)[0].firstChild.data);
兼容這兩種瀏覽器的方法,現(xiàn)在也出來了,就是使用contentWindow這個方法。
操作iframe是不是可以隨心所欲了呢?如果還覺得不爽,你甚至可以重寫iframe里的內(nèi)容。
三、重寫iframe里的內(nèi)容
通過designMode(設(shè)置文檔為可編輯設(shè)計模式)和contentEditable(設(shè)置內(nèi)容為可編輯),你可以重寫iframe里的內(nèi)容。代碼:
var iObj = document.getElementById(‘iId‘).contentWindow;
iObj.document.designMode = ‘On‘;
iObj.document.contentEditable = true;
iObj.document.open();
iObj.document.writeln(‘<html><head>‘);
iObj.document.writeln(‘<style>body {background:#000;font-size:9pt;margin: 2px; padding: 0px;}</style>‘);
iObj.document.writeln(‘</head><body></body></html>‘);
iObj.document.close();
這兩個對象的資料可參考:
注釋掉 iObj.document.designMode = ‘On’;
iObj.document.contentEditable = true;
效果沒有變,時間效率是注釋前的將近三倍。嘿嘿。那兩個對象是參考網(wǎng)絡(luò)一些人的寫法,重寫iframe里內(nèi)容,其實沒有必要用designMode和contentEditable,除非有其他的需求。
四、iframe自適應(yīng)高度
有了上面的原理要實現(xiàn)這個相當(dāng)簡單,就是把iframe的height值設(shè)置成它里面文檔的height值就可以。代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘);
iObj.height = iObj.contentWindow.document.documentElement.scrollHeight;
});
我們通過Javascript可以動態(tài)加載操作iframe對象屬性src屬性指向的html頁面的內(nèi)容。這樣的操作需要提供兩個頁面,一個頁面是iframe所在頁面(頁面名稱:iPage.html),另一個頁面是iframe屬性src指向頁面(頁面名稱:srcPage.html)。
iPage.html,<body>里dom:
<iframe id=“iId“ name=“iName“ src=“srcPage.html“ scrolling=“no“ frameborder=“0“></iframe>
srcPage.html,<body>里dom:
<h1>IT技術(shù)論壇 http://www.itjishu.com</h1>
一、ie下訪問操作iframe里內(nèi)容
大家都知道iframe是非標(biāo)準(zhǔn)html標(biāo)簽,它是由ie瀏覽器推出的多布局標(biāo)簽, 隨后Mozilla也支持了這個標(biāo)簽。
1. ie通過document.frames["IframeName"]獲取它,例子:我們在iPage.html里輸出srcPage.html里h1的內(nèi)容,JS如下:
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
你會發(fā)現(xiàn)這樣在頁面里加入代碼,好像并沒有輸出想要的東東,為什么呢?這個我也沒有搞清楚,只是習(xí)慣性的加入了window.onload就有輸出了(注:JS代碼都寫到這個事件里去),知道的人士可否告訴我下。why?更改之后代碼ie下有了輸出,firefox下document.frames沒有定義錯誤提示:
window.onload = (function () {
alert(document.frames["iName"].document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
2. ie另一種方法contentWindow獲取它,代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘).contentWindow;
alert(iObj.document.getElementsByTagName(‘h1‘)[0].firstChild.data);
});
此方法經(jīng)過ie6,ie7,firefox2.0,firefox3.0測試都通過,好事啊!嘿嘿。(網(wǎng)上一查,發(fā)現(xiàn)Mozilla Firefox iframe.contentWindow.focus緩沖區(qū)溢出漏洞,有腳本注入攻擊的危險。
后來聽說可以在后臺防止這樣的事情發(fā)生,算是松了口氣。不過還是希望firefox新版本可以解決這樣的危險。)
3.改變srcPage.html里h1標(biāo)題內(nèi)容,代碼:
iObj.document.getElementsByTagName(‘h1‘)[0].innerHTML=‘我想變成她一天的一部分‘;
通過contentWindow后訪問里面的節(jié)點就和以前一樣了。
二、firefox下訪問操作iframe里內(nèi)容
Mozilla支持通過IFrameElmRef.contentDocument訪問iframe的document對象的W3C標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)可以少寫一個document,代碼:
var iObj = document.getElementById(‘iId‘).contentDocument;
alert(iObj.getElementsByTagName(‘h1‘)[0].innerHTML=‘IT技術(shù)論壇‘);
alert(iObj.getElementsByTagName(‘p‘)[0].firstChild.data);
兼容這兩種瀏覽器的方法,現(xiàn)在也出來了,就是使用contentWindow這個方法。
操作iframe是不是可以隨心所欲了呢?如果還覺得不爽,你甚至可以重寫iframe里的內(nèi)容。
三、重寫iframe里的內(nèi)容
通過designMode(設(shè)置文檔為可編輯設(shè)計模式)和contentEditable(設(shè)置內(nèi)容為可編輯),你可以重寫iframe里的內(nèi)容。代碼:
var iObj = document.getElementById(‘iId‘).contentWindow;
iObj.document.designMode = ‘On‘;
iObj.document.contentEditable = true;
iObj.document.open();
iObj.document.writeln(‘<html><head>‘);
iObj.document.writeln(‘<style>body {background:#000;font-size:9pt;margin: 2px; padding: 0px;}</style>‘);
iObj.document.writeln(‘</head><body></body></html>‘);
iObj.document.close();
這兩個對象的資料可參考:
注釋掉 iObj.document.designMode = ‘On’;
iObj.document.contentEditable = true;
效果沒有變,時間效率是注釋前的將近三倍。嘿嘿。那兩個對象是參考網(wǎng)絡(luò)一些人的寫法,重寫iframe里內(nèi)容,其實沒有必要用designMode和contentEditable,除非有其他的需求。
四、iframe自適應(yīng)高度
有了上面的原理要實現(xiàn)這個相當(dāng)簡單,就是把iframe的height值設(shè)置成它里面文檔的height值就可以。代碼:
window.onload = (function () {
var iObj = document.getElementById(‘iId‘);
iObj.height = iObj.contentWindow.document.documentElement.scrollHeight;
});
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
獲取iframe里變量或方法
關(guān)于contentWindow和contentDocument
JS操作iframe
contentWindow屬性是指指定的frame或者iframe所在的window對象
Web 前端之 iframe 詳解
關(guān)于 contentWindow, contentDocument
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服