首页 > 解决方案 > 从 iframe 中的元素获取文本

问题描述

好吧,我想从 iframe 内的标签元素中获取文本,我的意思是我想单击所述 iframe 内的任何元素,并能够像这段代码一样将所述标签的文本检索回父窗口与我当前的页面:

$(document).click(function(event) {
    var text = $(event.target).text();
});

PS:iFrame中包含的网站基本上不在我的控制之下

标签: javascripthtml

解决方案


因此,为了在 iframe 和父窗口之间进行通信,iframe 的内容必须由 JavaScript 生成(如果它也是同一服务器上另一个文件的 iframe,则不确定它是否适用......)或者您必须以其他方式访问 iframe 页面的源代码,以实现 postMessage API 以将数据发送到主页或从主页发送数据

例如,在你的 iframe 源代码中的某个地方,比如点击一个元素,你可以调用 postMessage 向主框架发送一条消息

myButton.onclick= ()=>{
    parent.postMessage({message:"you clicked something"},"*")
}

然后在主文件中收听新消息

onmessage = e=> 
    console.log(e.data)

推荐阅读