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は、親ウィンドウ、親ウィンドウ、子ウィンドウの要素を取得します