无法在jQuery中访问IFRAME的内容

时间:2012-05-10 21:53:03

标签: javascript jquery iframe

我很难通过jQuery遇到IFRAME的contents()。它实际上是我正在尝试访问的帧内的帧。这些帧都来自相同的源(相同的域,相同的根路径等)。

我目前通过以下方式访问该框架:

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 question中所述),我得到一个空数组。

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是未经测试的,您应该在访问框架时使用内容。我认为它会是:

var someDivs = $("#outerIframe").contents().find("#innerIframe").contents().find("div");