contents()
jQuery 経由で IFRAME に遭遇するのが困難です。実際にアクセスしようとしているのは、フレーム内のフレームです。フレームはすべて同じソース (同じドメイン、同じルート パスなど) からのものです。
私は現在、次の方法でフレームにアクセスしています:
var $frame = $(window.top.frames[1].document).find('#innerFrameName');
これは正常に動作しconsole.log
、$frame の値が jQuery 配列であることがわかります。
[<frame src="mypage.htm" id="innerFrameName" frameborder="1" border="1" scrolling="auto" title="My Inner Frame" name="bsscright">]
ただし、(このStackOverflow の質問で説明されているように) 以下を呼び出そうとすると、空の配列が取得されます。
var $contents = $frame.contents();
console.log($contents); // => []
ドキュメント自体にアクセスしようとしても、できません。
var innerDocument = $frame.get(0).document;
console.log(innerDocument); // => undefined
jQueryを使わずに試してみましたが、上記と同じ結果が得られました。
var innerFrame = window.top.frames[1].frames['innerFrameName'];
var innerDocument = innerFrame.document;
console.log(innerFrame); // => the DOM object representing the IFRAME
console.log(innerDocument); // => undefined
私は何を間違っていますか?