javascript - 在禁用 CORS 安全性的情况下修改 chrome 中的 iframe
问题描述
我已经安装了 74 Chrome(因为在最新的 chrome 中禁用安全性不起作用)并使用禁用 cors 安全标志运行它:
open -a "Google Chrome 74" --args --disable-web-security --user-data-dir="/Users/Victor/GoogleTmp"
Chrome 已通知我安全功能已禁用。我已成功运行跨域 ajax 请求。
现在,我有一个 iframe,我需要修改它的样式。我用谷歌搜索我可以插入一个链接标签来做到这一点。但即使禁用了安全性,我也收到以下错误:
SecurityError: Blocked a frame with origin "http://localhost:5555" from accessing a cross-origin frame.
我还尝试了其他不同的方法,比如 nginx 代理传递等,但都没有奏效。但我想知道为什么禁用网络安全没有帮助?
这是插入css的示例代码(我使用vuejs)
let cssLink = document.createElement("link")
cssLink.href = "style.css"
cssLink.rel = "stylesheet"
cssLink.type = "text/css"
const iframe = this.$refs.vizContainer.firstChild
this.$refs.vizContainer.firstChild.contentWindow.document.head.appendChild(cssLink)
解决方案
尝试将crossorigin
属性添加到 iframe 并将其设置为匿名
<iframe src="../" crossorigin="anonymous" />
推荐阅读
- css - 如何将元素放在悬停 CSS 上?
- javascript - 将下拉值传递给静态方法后面的代码
- angular - How to make input readonly, but still allow some keys to work
- javascript - 剑道网格导出到 Excel 下拉列表值而不是导出文件中的文本
- asp.net - 在 .NET 上使用 https 上传多个图像的问题
- postgresql - docker-compose - Spring boot 不会连接到 postgres,除非 network_mode: host
- java - 静态资源的编码问题
- c# - C# Debug build ok,但 Release build 由于优化而失败
- mysql - query.conf 上的双 acctupdateinterval(临时更新部分)
- java - Undefined method type