javascript iframe関連操作
2228 ワード
1.iframeのwindowオブジェクトを獲得する
iframeElement.co ntwindow
2.iframeのdocumentオブジェクトを獲得する
クロスドメインアクセス制限があります.
chrome:iframeElement.co nt Dockment firefox:iframeElement.co nt Dcument ie:element.com ntwindow.document備考:ieはiframeElement.com属性を持っていません.
クロスドメインアクセス制限があります.
父ページ:window.parentトップページ:window.topはすべてのブラウザに適用されます.
4.iframeの親ページのhtmlタグを取得する
クロスドメインアクセス制限があります.
window.frame Element(タイプ:HTMlement)は、すべてのブラウザに適用されます.
5.iframeのonloadイベント
いいえ、ieブラウザは全部オンラインイベントを提供しました.例えば、以下のコードは、ieにおいて、ポップアップボックスがない.
実際にIEはonloadイベントを提供しているが、atachEventを使用してバインディングしなければならない.
window.frameはページの中のフレーム(frame、frameなど)を取ることができます.注意すべきのはwindowオブジェクトであり、HTMlementではありません.
この声明はドメイン名の違いを消しました.同じドメイン名のサイトを二つ処理するようにこの二つのページを処理できます.
iframeElement.co ntwindow
2.iframeのdocumentオブジェクトを獲得する
クロスドメインアクセス制限があります.
chrome:iframeElement.co nt Dockment firefox:iframeElement.co nt Dcument ie:element.com ntwindow.document備考:ieはiframeElement.com属性を持っていません.
var getIframeDocument = function(element) {
return element.contentDocument || element.contentWindow.document;
};
3.iframeで親ページのwindowオブジェクトを獲得するクロスドメインアクセス制限があります.
父ページ:window.parentトップページ:window.topはすべてのブラウザに適用されます.
4.iframeの親ページのhtmlタグを取得する
クロスドメインアクセス制限があります.
window.frame Element(タイプ:HTMlement)は、すべてのブラウザに適用されます.
5.iframeのonloadイベント
いいえ、ieブラウザは全部オンラインイベントを提供しました.例えば、以下のコードは、ieにおいて、ポップアップボックスがない.
var ifr = document.createElement('iframe');
ifr.src = 'http://www.b.com/index.php';
ifr.onload = function() {
alert('loaded');
};
document.body.appendChild(ifr);
しかし、ieはまたonloadイベントを提供しているようです.次の二つの方法はonloadを触発します. :
<iframe onload="alert('loaded');" src="http://www.b.com/index.php"></iframe>
:
// ie createElement
var ifr = document.createElement('<iframe onload="alert('loaded');" src="http://www.b.com/index.php"></iframe>');
document.body.appendChild(ifr);
iframe要素は親ページに含まれているので、上記の方法はドメインをまたぐ問題がありません.実際にIEはonloadイベントを提供しているが、atachEventを使用してバインディングしなければならない.
ar ifr = document.createElement('iframe');
ifr.src = 'http://b.a.com/b.php';
if (ifr.attachEvent) {
ifr.attachEvent('onload', function(){ alert('loaded'); });
} else {
ifr.onload = function() { alert('loaded'); };
}
document.body.appendChild(ifr);
6.frameswindow.frameはページの中のフレーム(frame、frameなど)を取ることができます.注意すべきのはwindowオブジェクトであり、HTMlementではありません.
var ifr1 = document.getElementById('ifr1');
var ifr1win = window.frames[0];
ifr1win.frameElement === ifr1; // true
ifr1win === ifr1; // false
7.document.domainを定義するこの声明はドメイン名の違いを消しました.同じドメイン名のサイトを二つ処理するようにこの二つのページを処理できます.