目前,我可以使用$('iframe').contents()
在非我的网页上检索第一个iframe的内容
由此,我可以通过执行$('iframe').contents().find('body')
来获得body标记。结果是预期的
然而,我正在尝试获取第二个iframe的body标签。通过执行`$('iframe'(.eq(1(,我可以获得第二个iframe,但$('iframe'(.eq(1。
如何获取第二个iframe的内容?
很多Fiddle之类的可能不是一个好的测试场所。CORS存在并发症。下面是一个有效的例子:
https://jsfiddle.net/Twisty/037yueqj/9/
HTML
<iframe id="frame-1"></iframe>
<iframe id="frame-2"></iframe>
JavaScript
$(function() {
var f1 = $("#frame-1"),
f2 = $("#frame-2"),
frames = $("iframe");
f1.contents().find("body").html("<strong>Frame 1</strong>");
f2.contents().find("body").html("<strong>Frame 2</strong>");
console.log(frames.eq(0).contents().find("body").text());
console.log(frames.eq(1).contents().find("body").text());
});
如果你给它们唯一的ID或类,你就可以调用合适的选择器。您可以调用更宽的选择器并使用.eq()
或使用.each()
进行迭代。
必须在chrome中使用--disable web安全来从另一个url 访问iframe中的内容