【问题标题】:Open iframe in jquery and then read contents from it在 jquery 中打开 iframe,然后从中读取内容
【发布时间】:2012-02-18 04:17:19
【问题描述】:

我是 jquery 的新手,但我需要在 iframe 中打开一些内容(内容位于另一个域中),这当然会从其他位置加载整个 html 页面,然后我需要遍历正文内容到在那里的表格中找到一些文本...

有没有办法做到这一点?

我也尝试过使用带有 window.open 的弹出窗口,但是我找不到使用 jquery 遍历这个新窗口内容的方法,这就是我考虑 iframe 解决方案的原因...

谢谢!请原谅这个新手问题...

【问题讨论】:

  • 如果 iframe 内容来自另一个域,我认为这是不可能的。
  • 是的,内容来自另一个域:/ ...即使我只想阅读内容也不可能吗?我不想操纵任何东西......

标签: jquery iframe


【解决方案1】:

使用.contents方法查找iframe内的元素

$("#iframeID").contents().find("#elemInIframe")

编辑:

正如 @elclanrs 在 cmets 中所说,如果 iframe 不属于您的域,您无法 访问 iframe 内容p>

【讨论】:

  • 这也是我想要做的,但我什么也没得到......正如我在上一个答案的评论中提到的那样,Iframe 的内容来自另一个域,而不是我正在使用的那个...:S
  • 那么您将无法访问 iframe 内容,由于安全限制,您无法访问属于另一个域的 iframe 内容
  • 我知道这听起来可能不对,但是为什么像 Firebug 这样的 Firefox 扩展允许这种操作呢?当然答案根本不涉及 javascript,这就是为什么?
  • 我不知道真实情况,但萤火虫在沙盒环境中作为火狐浏览器的扩展运行,这就是为什么当您尝试在 chrome 中安装新扩展时它会警告您扩展有访问您的浏览器历史记录等...所以我看不到这里的类比。
【解决方案2】:
<html>
 <head>
 <script src="jquery-1.3.2.min.js"></script>
 <script>
 $(document).ready(function(){
                            $('iframe').bind('myCustomTrigger', function() {
 alert('hello');
 });
 });
 $("#frameDemo").contents().find("a").css("background-color","#BADA55");
 </script>
 </head>
 <body>
 <iframe src="iframe_file.html" width="800px" height="600px">
 </iframe>
 </body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    相关资源
    最近更新 更多