js獲取iframe和父級之間元素,方法、屬,獲取iframe的高度自適應iframe高度
1、在父頁面 獲取iframe子頁面的元素
(在同域的情況下 且在http://下測試,且最好在iframe onload載入完畢後 dosomething...)
js寫法
a、同過contentWindow獲取
也有用contentDocument 獲取的 但是contentWindow 相容各個瀏覽器,可取得子視窗的 window 物件。
contentDocument Firefox 支援,> ie8 的ie支援。可取得子視窗的 document 物件。
獲取方法
- var frameWin=document.getElementById('iframe').contentWindow; //window物件
- var frameDoc=document.getElementById('iframeId').contentWindow.document //document物件
- var frameBody=document.getElementById('iframeId').contentWindow.document.body //body物件
還有iframe.contentDocument 方法 //但是ie 6,7不支援
b、通過frames[]陣列獲取
(但是必須在ifram框架載入完畢後獲取,iframe1是iframe的name屬性)
- document.getElementById('iframId').onload=function(){
- var html= window.frames["name屬性"].document.getElementById('iframe中的元素的id').innerHTML;
- alert(html)
- }
- 如果要獲取iframe中的iframe
- document.getElementById('iframId').onload=function(){
- var html= window.frames["name屬性"].frames["name屬性"].document.getElementById('iframe中的元素的id').innerHTML;
- alert(html)
- }
jq寫法:必須在iframe載入完畢以後才有效
- a、$("#iframe的ID").contents().find("#iframe中的控制元件ID").click();//jquery 方法1 必須在iframe載入完後才有效
- b、$("#iframe中的控制元件ID",document.frames("frame的name").document)//方法2 <span style="font-family: Arial, Helvetica, sans-serif;">必須在iframe載入完後才有效</span>
2、在iframe中獲取父級頁面的id元素
(在同域的情況下且在http://下測試,最好是 iframe記載完畢再dosomething)
js寫法:
獲取父級中的objid- var obj=window.parent.document.getElementById('objId')
jq寫法:
- $('#父級視窗的objId', window.parent.document).css('height':'height); // window可省略不寫
- 或者
- $(window.parent.document).find("#objId").css('height':'height); // window可省略不寫
3、父級窗體訪問iframe中的屬性
(經測試,在ie中最好用原生的onload事件,如果用jq的load把iframe載入完畢 有時候方法呼叫不到 多重新整理才有效果)
- a、 用contentWindow方法
- document.getElementById('iframe1').onload=function(){
- this.contentWindow.run();
- }
- b、用iframes[]框架集陣列方法
- document.getElementById('iframe1').onload=function(){
- frames["iframe1"].run();
- }
===================================
4、在iframe中訪問父級窗體的方法和屬性 //window 可以不寫
- window.parent.attributeName; // 訪問屬性attributeName是在父級視窗的屬性名
- window.parent.Func(); // 訪問屬性Func()是在父級視窗的方法
5、讓iframe自適應高度
- $('#iframeId').load(function() { //方法1
- var iframeHeight = Math.min(iframe.contentWindow.window.document.documentElement.scrollHeight, iframe.contentWindow.window.document.body.scrollHeight);
- var h=$(this).contents().height();
- $(this).height(h+'px');
- });
- $('#iframeId').load(function() { //方法2
- var iframeHeight=$(this).contents().height();
- $(this).height(iframeHeight+'px');
- });
6、iframe的onload的事件,
主流瀏覽器都支援 iframe.onload=function....
在ie下需要用attachEvent繫結事件
7、在iframe所引入的網址寫入防釣魚程式碼
if(window!=window.top){
window.top.location.href=window.location.href;
}
window.top.location.href=window.location.href;
}
8、獲取iframe的高度
iframe.contentWindow.document.body.offsetHeight;
轉自:https://blog.csdn.net/kongjiea/article/details/38870399
相關文章
- iframe的操作-Js/Jquery獲取iframe中的元素JSjQuery
- html iframe高度自適應HTML
- iframe 跨域高度自適應跨域
- iframe自適應高度的外掛
- 自動載入的iframe高度自適應
- 真正解決iframe高度自適應問題
- iframe 裡的高度適應的問題
- jquery獲取低程式碼平臺iframe巢狀的父級元素指定元素jQuery巢狀
- iframe高度處理
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- Iframe嵌入跨域頁面高度自適應實現詳解跨域
- iOS 精準獲取webView內容高度並自適應高度iOSWebView
- iframe 高度設定為0時還有佔位_iframe佔位
- Iframe內部頁面高度賦值於其父頁面的Iframe標籤賦值
- Jquery中獲取iframe的程式碼(window.top.parent)jQuery
- 真正的讓iframe自適應高度 相容多種瀏覽器隨著視窗大小改變瀏覽器
- 使用iframe內嵌網頁的時候,如何做到內嵌網頁的高度自適應 有大用網頁
- html之iframe,aHTML
- JS,Jquery獲取各種螢幕的寬度和高度JSjQuery
- 三種方法解決浮動元素父容器高度自適應問題
- iframe巢狀(等寬高比自適應:aspectRatio)巢狀
- Android獲取狀態列高度Android
- iframe 元素跨域訪問跨域
- 解析Jquery取得iframe中元素的幾種方法jQuery
- 動態生成DOM元素的高度及行數獲取與計算方法
- js 獲取可視介面的高度或寬度JS
- 怎樣使用iframe重新整理父級頁面?
- iframe父子級相互呼叫
- JavaScript獲取父元素下子元素節點JavaScript
- 瀏覽器滾動條高度的獲取瀏覽器
- 微信小程式swiper高度自適應,swiper的子元素高度不固定微信小程式
- JS 獲取文件元素JS
- jQuery操作iframe中js函式的方法小結jQueryJS函式
- js和vue方法的相互呼叫(iframe父子頁面的方法相互呼叫)。JSVue
- laravel+iframeLaravel
- gulp與iframe
- textarea 高度自適應
- Vue嵌入iframe,iframe如何跨域呼叫vue內路由Vue跨域路由