将div中的文本从一个iframe提取/回显到页面的另一部分

时间:2014-07-22 05:11:04

标签: html css iframe echo

因此,如果有可能我想在自定义页面上的一个iframe内回显(或以其他方式复制)一些文本,我将在该iframe所在的页面上创建另一个section / div。

示例:

<div 1>
  <iframe> 
    <div inside frame>
       Text i would like to echo/copy
    </div>
  </iframe>
</div>
<div 2>
  (another iframe could go here if needed but i was firstly trying to do it without another one.)
  Text from the iframe above 
</div>

我可能没有100%正确,但我想这样做,在第二个div中我将有一个使文本滚动的类。

这是一个我正在努力的抽搐流项目。这是通过将页面显示为“正在播放”的文本,并通过将背景颜色“色度键为绿色”并将其显示在流上而使其透明。

另一种选择是,如果我可以使用某种脚本将文本从此div发送到文本文件中,因为它更新,然后我可以将文本文件添加到流中。

注意:我不介意使用php或java / jquery。我试图保持文件简单易用,编辑最重要。我只想说明我在java和php方面没有经验。我想以最简单的方式做到这一点。 谢谢!

(我不想包含我的所有代码,但它非常直接,感谢所有帮助。)

1 个答案:

答案 0 :(得分:0)

如果父页面和iframe内的页面托管在同一个域,您可以在父页面上直接使用类似的内容访问iframe的内容:

var iframe = document.getElementById('id-of-iframe');
var element = iframe.documentWindow.getElementById('id-of-element-inside-iframe');

出于安全原因,如果页面未托管在同一域中,则会失败。

如果页面托管在不同的域上,但您可以访问(读取:您可以在两个页面上更改服务器的HTML输出),则还有另一个选项称为跨文档消息传递。

这有点复杂,并且涉及父页面和子页面上的脚本以相互通信并来回发送数据。

在父页面上,您可以使用以下内容:

window.attachEventListener('onmessage', function (...) {
  // Listen for messages from the child page
}, false);

然后在子页面中,您将打包数据并通过以下调用将其发送给父级:

parent.postMessage(...);

显然,我在这里留下了详细信息(...),但这是一般性的想法。

如果您无法访问父页面和子页面,则无法实现您的要求。允许任何页面访问iframe中的任何其他页面将是一个主要的安全问题。 (想象一下,如果我在我的网站上放置了整页iframe,将Gmail加载到其中,然后设置脚本来观察密码字段的值。)