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

标签 html css iframe echo

因此,如果可能的话,我想回显(或以其他方式复制)自定义页面上一个 iframe 内的一些文本,我正在将其制作到此 iframe 所在页面上的另一个部分/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 方面经验不足。我想以最简单的方式做到这一点。 谢谢!

(我不想包含我所有的代码,但它相当简单,感谢所有帮助。)

最佳答案

如果父页面和 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,然后设置一个脚本来监视密码字段的值。)

关于html - 从一个 iframe 的 div 中提取/回显文本到页面的另一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24879375/

相关文章:

facebook - Facebook 注册插件中的 iframe 目标无法设置为 _self

html - 隐藏并再次显示 iframe 后音频标签不出现?

html - 跨度末尾的空格会影响后伪元素的绝对定位

html - 使用 flexbox 固定左侧栏

jquery - 改变液体 slider 的颜色

asp.net - IItemTransform 和现有的缩小文件

html - 如何根据数据长度动态设置CSS样式样式字体

javascript - zoomplus magento - 无法滚动

javascript - 如何从内部更改 iframe z-index?

html - 仅使用 CSS 滚动时如何将固定 slider 移动到顶部