如何解决在 Chrome 扩展程序的外部 iframe 中填写表单数据
我有一个可以自动填充表单输入的 chrome 扩展程序。我面临的问题是 iframe
是从不同的来源加载的。因此,Chrome 会限制我注入页面的脚本访问 iframe。在 SO 上已经有很多关于这个问题的问题。
最近我发现 extension by privacy.com 可以将 HTML 元素插入到同一个 iframe
中而没有任何问题。这是如何实现的?
为了重现,
- 安装 Pay by Privacy.com Chrome 扩展程序。
- 使用表单转到this codepen
- 您会在信用卡号输入处看到一个“P”图标。这是由扩展内部 iframe 注入的。
- 尝试手动选择从 Chrome 开发者控制台输入的信用卡号的 HTML 元素。这是要运行的代码,(确保在控制台中将
top
设置为 JS 上下文)
document.querySelectorAll('iframe')[0].contentWindow.document.querySelector('#credit-card-number');
这会出错并显示以下消息
Uncaught DOMException: Blocked a frame with origin "https://codepen.io" from accessing a cross-origin frame.
at <anonymous>:1:53
该错误是意料之中的,我在尝试从我的扩展中执行相同操作时也看到了该错误。那么,Pay by Privacy.com 使用什么技术使其发挥作用?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。