【问题标题】:Get data from inside an iFrame on the same page从同一页面上的 iFrame 内部获取数据
【发布时间】:2011-03-28 17:10:56
【问题描述】:

我正在尝试做这样的事情:

 var data = $('#upTar').contents();
 $("#fileRes").html(data);

#upTar 是 iframe,#fileRes 是 div,也就是说,我希望将 iframe(HTML 格式)中的所有数据放入 div。 iframe 是动态加载的。

编辑
附加代码如下所示:

    $("#addMore").click(function() {  
         $("#progForm").submit();  
         $('#upTar').load(function() {  
         $("#title, #obj, #theory, #code, #output, #conc").val("");  
         var data = $('#upTar').contents().find("body").html();  
         alert(data);    
         $("#fileRes").html(data);  
        });  
     });  

表单提交的目标是同一页面上的 iframe (#upTar)。加载该文件后,我希望将其数据传输到 div。

关闭编辑
我现在没有尝试从 iframe 中获取详细信息,而是调用 ajax 脚本来更新 div。

谢谢大家!

【问题讨论】:

  • 如果 iframe 来自不同的域,则不可能。
  • data 是否包含任何内容?您收到任何错误消息吗?
  • www 与没有 www? (因为您的页面是 www.foo.com 而您的 iframe 是 foo.com?
  • 目前我正在 iis 服务器上通过 localhost 进行测试。

标签: javascript jquery iframe html


【解决方案1】:

试试$('#upTar').contents().find("body").html()

contents 本身返回顶级 HTMLElement 节点,您也必须从该节点获取 HTML。并且您可能不想要包括 head 部分在内的所有 HTML,所以首先您需要找到 body 标记。

【讨论】:

  • 我使用它作为 var data = $('#upTar').contents().find("body").html() alert(data) 是返回空警报。
  • 那么必须是不同的域、子域、端口或协议。
  • ... 或者,您的 iframe 不包含正文标记。或者您在加载 iframe 之前调用您的脚本。
  • 我在 localhost (IIS) 上进行操作。
  • 是的,似乎在加载 iframe 之前调用了脚本。我改变了我的方法(阅读 OP)。谢谢!
猜你喜欢
  • 2015-02-18
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 2011-07-02
  • 1970-01-01
相关资源
最近更新 更多