在Iframe Load中读取iframe内容

时间:2009-08-04 19:13:33

标签: javascript html iframe

我想学习如何在iframe的onLoad事件中阅读iframe内容并将其内容写入主页?感谢..

5 个答案:

答案 0 :(得分:11)

您可以在父页面中使用此jquery函数,它还支持许多其他函数来添加和删除内容:

<script type="text/javascript">
        function myFunction() {
         var $currIFrame = $('#Frame1');
         $currIFrame.contents().find("body #idofElement").val('Value i want to set');
          }
</script>

在上面的代码中:#idofElement是iframe中HTML页面中要设置其值的元素。我希望它可以帮助你...

答案 1 :(得分:6)

过去的这一天,我一直在努力。你如何访问iframe似乎很重要。如果您使用document.getElementById(),则会获得一个没有onload事件的Iframe对象。但是,如果您通过window.frames[]数组访问,例如

var iframeWindow = top.frames['iframeID'],

你得到一个窗口对象,它确实有onload事件。

(即使用frame id属性,但ff使用name属性。所以使用两者并使其相同)

然后您可以指定

iframeWindow.onload=function(){iframeContent=iframeWindow.document.body.innerHTML;};

请注意,由于iframeWindow是一个窗口对象,因此您可以使用窗口语法来访问内容。

答案 2 :(得分:2)

jQuery("#xiframe").load(function()
{
  var doc = null;
  try{
    doc = this.document || this.contentDocument || this.contentWindow && xiframe.contentWindow.document || null;
  } catch(err) { 
    alert('error: ' + err.description); 
  }

  try {             
   if(!doc) {
     alert('error');
     return false;
   }
  } catch(err) {
    alert('error: ' + err.description); 
    return false;
  }

  alert(String(jQuery(doc.body).html());
}

答案 3 :(得分:1)

document.getElementById('iframeID').contentWindow.onload = function(){
    top.document.innerHTML = this.document.innerHTML;
}

答案 4 :(得分:0)

  • 父文档(显示iframe的页面)
  • 子文档(iframe内显示的页面)

如果这两个文档位于同一个域中,则可以使用子文档的onload事件处理程序中的window.parent.document对象来访问父文档。