php 如何将iframe内容复制到div中?

2mbi3lxu  于 2023-03-16  发布在  PHP
关注(0)|答案(3)|浏览(150)

请看下面的代码片段。我希望iframe中的输出文本显示在#source div中。我正在努力解决这个问题,并感谢您的任何建议。我如何将iframe中的输出文本复制到div中?(如果div #sourcediv包含“文本”,则脚本在div #show中写入“可以看到文本!”,否则“无法看到文本!")

<html>
<body>

<div id="source"></div>
<div id="show"></div> 

<script> 
if (document.getElementById('source').innerHTML.indexOf("Text") != -1)
{document.getElementById('show').innerHTML="Can see text!";}
else{document.getElementById('show').innerHTML="Cannot see text!";}
</script>

<iframe id="iframe" src="http://majaulrika.esy.es/text.txt">

</body>
</html>
abithluo

abithluo1#

请记住,您的iframe与您的页面位于同一域

// Get your iframe element

var iframe = document.getElementById('iframe');

// Access contents of it like this

var iframeContent = iframe.contentWindow.document;

// Get your div element

var content = document.getElementById('source');

// set contents of this div to iframe's content

content.innerHTML = iframeContent.innerHTML;

根据您执行此操作的时间,等待iframe加载也是值得的:

iframe.onload = function() { /* put the above code here */ }
vwhgwdsa

vwhgwdsa2#

进一步评论:
从文件中获取内容的一个更好的解决方案是使用 AJAX 。
下面是一个使用 AJAX 和jQuery的简单方法。

$.ajax({
  url: 'http://output.jsbin.com/sebusu',
  success: function(data) {
    $('#source').html(data);
    $('#show').text(function(){
      if (data.indexOf('Text') != -1) {
        return 'Can see text!';
      }
      else {
        return "Can't see text!";
      }
    });
  },
  error: function(){
    console.log(error);
  }
});
<div id="source"></div>
<div id="show"></div>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

Live Demo

同样,你只能为你的网站 AJAX (使用一些exceptions

gcmastyq

gcmastyq3#

$("#my_iframe").on('load', function() {
$("#my_div").empty().append($('#my_iframe').contents().find('body').html());
});

注:“body”可以是iframe中的任何内容,如果你只需要一个特定的div,你可以使用“#div_inside_iframe”代替“body”,使用“body”或“html”将iframe中的所有内容复制到目标div中。

相关问题