iframe.contentWindowプロパティ:contentWindowとcontentDocumentを区別します



Iframe Contentwindow Property



定義と使用法

contentDocumentプロパティは、iframe内のドキュメントをHTMLオブジェクトとして返します。 返されたオブジェクトは、すべての標準DOMメソッドで処理できます

構文:frameObject.contentWindow、またはiframeObject.contentWindow(jqueryオブジェクトではありません)



iframeを使用してページをネストするときに、親ページがサブページ内のコンテンツを取得する場合は、contentWindowまたはcontentDocumentを使用できます。違いは次のとおりです。

1、contentWindowこれは、指定されたiframeのウィンドウオブジェクトを返す読み取り専用プロパティです。これは標準の一部ではありませんが、すべての主要なブラウザーでサポートされています。



2、contentDocument Firefoxサポート、IE6、IE7はサポートされていません、IE8サポート、document.frames ['J_mainframe']。documentにアクセスする必要があります。

ドキュメントオブジェクトを取得するための互換性:

var getIFrameDoc = function()

基本的な使用法:



1、document.getElementById( 'myiframe')。contentWindow、iframeオブジェクトを取得した後、渡すことができます contentWindowは、ページを含むiframeのウィンドウオブジェクトを取得します そして、通常どおりページ要素にアクセスできます

2. $( '#myiframe')[0] .contentWindow、jqueryセレクターはiframeを取得するか、最初にjqueryオブジェクトをDOMオブジェクトに変換するか、get()メソッドを使用して変換します

3、$( '#myiframe')[0] .contentWindow。$( '#dd')。val()、iframeウィンドウオブジェクトを取得した後、jqueryセレクターを使用してページ操作を取得できます

4、 $( '#myiframe')[0] .contentWindow.username = 'zhangsan' この方法でパラメータをiframeページに渡すことができます。iframeページウィンドウで値を取得できます。username、usernameはカスタムグローバル変数です。

5、iframeページから 親はメインページのウィンドウを取得でき、次に親ページの要素にアクセスできます。 アップ

6、parent。$( '#frame_A')[0] .contentWindow.document.getElmentById( '#frame_B') 同じレベルの兄弟ページ間を呼び出すには、最初に父親のウィンドウを取得する必要があります。 、次に同じレベルのiframeを呼び出して、ウィンドウを操作します

// Set the parent iframe , or the grand iframe height in the child iframe. function showIframeH(){ var parentWin = parent.document.getElementById('test') if(!parentWin) return false var sub = parentWin.contentWindow.document.getElementById('test2') if(!sub) return false Var thirdHeight = sub.contentWindow.document.body.offsetHeight //Layer 3 body object Sub.height = thirdHeight //Set the height of the second layer iframe Var secondHeight = parentWin .contentWindow.document.body.offsetHeight //the second layer body object parentWin .height = secondHeight //Set the height of the first layer iframe } var ifr = document.getElementById('iframe') ifr.contentWindow.document.getElementById('XXXXX')

まず、iframeページを使用する場合、使用するにはiframe内のDOM要素を使用する必要があります:contentWindow、contentDocument

1、 最初にiframe内のウィンドウオブジェクトを取得し、次にオブジェクトを介してDOM要素を取得します。

例:

var ifr = document.getElementByTagName('iframe') ifr.parent.document.getElementById('XXXXX')

Ifr.contentWindowここでは、iframeのウィンドウオブジェクトが返されるため、documentメソッドを呼び出してから、getElementByTagNameを呼び出すことができます。次に、iframe内の要素を操作できます。

次に、iframeページで、iframeの親ページ(つまり、iframeをネストするページ)のDOM要素を使用する必要があります。

Window.parent、window.top(TOPは取得のトップレベル、つまり、ネストされたiframeが複数ある場合)

|_+_|

例:

top。$( 'iframe [name =' iframeWindow ']')[0]。 contentWindow 。$( '#inside_tableElement')、iframe内の要素を取得するために、

注:top。$( 'iframe [name =' iframeWindow ']')。eq(0)。$( '#inside_tableElement')は使用できません

次に、以前に書かれたこのブログを見てください。 Jqueryは、親ウィンドウ、親ウィンドウ、子ウィンドウの要素を取得します