2

我在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

我究竟做错了什么?

4

1 回答 1

-1

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

var someDivs = $("#outerIframe").contents().find("#innerIframe").contents().find("div");
于 2012-05-10T23:28:23.983 回答