javascript - 在 wordpress 中将数据插入 iframe
问题描述
我有一个关于更改 iframe 输出的问题。我的网站加载了一个首页(wordpress),其中整个内容块都是一个 iframe。我可以从 wordpress 端操作 iframe 的输出吗?
假设我想滚动到 iframe 内容中的 id 标签,我可以在 iframe 外部的首页上创建一个链接吗?
另一个示例可能是通过单击 wordpress 中的菜单链接来预填充 iframe 中的输入字段,这可能吗?
解决方案
它可能取决于 iframe 是否是跨域的(即src
iframe 上的属性是否与您的 wordpress 站点位于同一域中)。
如果不是 - 那么您可以简单地使用父窗口中的 javascript 访问 iframe 内容,例如(在父窗口中):
const iframe = document.getElementById('<your-iframe-id>');
const iframeDoc = iframe.documentElement || iframe.contentWindow.document;
doThingsWithIframeContents(iframeDoc);
如果它是跨域的,那么您需要将消息传递给您在 iframe 文档中控制的脚本。然后,该脚本将操纵 iframe 本身的内容。无需过多介绍,请查看https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage。
编辑:实际上,请查看与此案例相关的其他 SO 帖子:如何在 iframe 和父站点之间进行通信?
希望有帮助!
推荐阅读
- javascript - 如何使用函数 reverseArray 反转数组
- python - 值错误:对已关闭文件的 I/O 操作
- javascript - 升级 .then .catch 到 async await 并尝试 catch
- swift - 资产目录中的图像名称未显示在自动完成中 - xcode 12
- sql - Redshift,十进制值的转换不四舍五入
- python - 在数据科学中,使用 x X 有什么区别?
- laravel - Laravel+VUE:如何在同一个刀片中显示 2 个不同的 div 和 2 个不同的按钮
- android - 当我尝试将数据作为按钮传递时,没有出现任何按钮?
- macos - 为什么 brew cleanup 或 brew cleanup -n 不显示任何输出?
- javascript - 如何在Typescript中遍历具有数组和对象的大型数组列表