ホームページ >ウェブフロントエンド >jsチュートリアル >iframe_javascript スキルを操作する js のいくつかのメソッドの紹介

iframe_javascript スキルを操作する js のいくつかのメソッドの紹介

WBOY
WBOYオリジナル
2016-05-16 17:31:221144ブラウズ

1. iframe の window オブジェクトを取得します
クロスドメインアクセス制限があります。

chrome: iframeElement.contentWindow
firefox: iframeElement.contentWindow
ie6: iframeElement.contentWindow

記事 Iframes、onload、document.domain には、「iframe 要素オブジェクトには、iframe の document オブジェクトを含む contentDocument というプロパティがあるため、parentWindow プロパティを使用してウィンドウ オブジェクトを取得できる」と記載されています。これは、一部のブラウザではこのことを意味します。 iframe のウィンドウ オブジェクトは、iframeElement.contentDocument.parentWindow を通じて取得できます。ただし、テスト後、Firefox と chrome の element.contentDocument オブジェクトにはparentWindow 属性がありません。

(javascript)

コードをコピー コードは次のとおりです。

function getIframeWindow( element){
return element.contentWindow;
// return element.contentDocument.parentWindow >}

2. iframe のドキュメントオブジェクトの取得
クロスドメインアクセス制限があります。

chrome: iframeElement.contentDocument

firefox: iframeElement.contentDocument
ie: element.contentWindow.document
注: ie には iframeElement.contentDocument プロパティがありません。

(javascript)


コードをコピー コードは次のとおりです。
var getIframeDocument = function(element ) {
return element.contentDocument ||


;
3. iframe

内の親ページから取得されたウィンドウ オブジェクトには、クロスドメイン アクセス制限があります。
親ページ: window.parent

トップページ: window.top

すべてのブラウザに適用されます

4. 親ページの iframe の HTML タグを取得します。

クロスドメインのアクセス制限があります。
window.frameElement (タイプ: HTMLElement)、すべてのブラウザで動作します

5. iframe onload イベント

IE 以外のすべてのブラウザは onload イベントを提供します。たとえば、次のコードには IE ではポップアップ ボックスが表示されません。
(javascript)


コードをコピーします コードは次のとおりです:
var ifr = document.createElement ('iframe');
ifr.src = 'http://www.jb51.net/index.php';
ifr.onload = function() {
ロードされました');
};
document.body.appendChild(ifr);


ただし、IE には onload イベントが用意されているようで、次の 2 つのメソッドが onload
をトリガーします。
方法 1:


コードをコピーします コードは次のとおりです:


方法 2:
//createElement にそのようなパラメーターを渡すことをサポートしているのは IE だけです

var ifr = document.createElement('');
document.body.appendChild(ifr);


親ページに iframe 要素が含まれているため、クロスはありません。上記の方法ではドメインの問題が発生します。

実際には、IE は onload イベントを提供しますが、attachEvent を使用してバインドする必要があります。

var ifr = document.createElement('iframe ');
ifr.src = 'http://b.jb51.net/b.php';
if (ifr.attachEvent) {
ifr.attachEvent('onload', function() {alert( 'loaded') });
} else {
ifr.onload = function() {alert('loaded') }; ifr);

6. フレーム
window.frames はページ内のフレーム (iframe、frame など) を取得できます。これは HTMLElement ではなく window オブジェクトであることに注意してください。

コードをコピー コードは次のとおりです。

var ifr1 = document.getElementById('ifr1 ');
var ifr1win = window.frames[0];
ifr1win.frameElement === ifr1; // false

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。