正如我们许多人所知,由于以下原因,无法编辑跨域 IFrame:同源政策.
如果我们仅在本地使用时尚扩展等,有没有办法解决这个问题?
以在 iframe 内启动的视频为例:
我需要简单地添加“zoom:2;”到“#video21588864 iframe 图”
如果这 100% 不可能,为什么我能够在检查器窗口中成功完成此操作,但不能自动完成?使用 Javascript 或其他东西真的有零自动本地方法吗?
您无法访问其中的内容<iframe>
以跨源方式。如果响应包含 CORS 标头,您也许可以。
为什么我能够在检查器窗口中成功完成
开发人员工具与您的文档是分开的。它可以做更多在网页中使用普通 JavaScript 无法完成的事情。
基本原理
您无法访问 iframe 内的内容是有原因的。考虑一下,用户登录了他们的银行网页。令牌存储在 cookie 中以证明用户已登录。
现在,您在网页中包含一个 iframe 并加载银行的网页。由于 cookie 包含有效令牌,因此 iframe 将显示用户已登录。
如果您可以访问 iframe 并给自己寄一些钱,不是很好吗?嗯,这正是不允许的原因,100%不可能,假设浏览器正确实现。
Addendum
看到你提到这个词后我决定添加这部分locally。现在,我不知道你到底想做什么,但如果你有更高的权限,就可以操纵 iframe 内的内容,包括:
- 用户脚本
- 获得适当权限的扩展
- 开发者工具
- 浏览器本身
如果您只想添加zoom: 2
对于您自己计算机上的 ESPN 视频,我建议创建用户脚本它比普通网页具有更高的权限,并且比扩展更容易制作。
// ==UserScript==
// @match http://www.espn.com/core/video/iframe*
// ==/UserScript==
document.querySelector("figure").style.zoom = 2;
将其另存为myscript.user.js
。打开 chrome://extensions 并将该文件拖到页面上。用户脚本将拥有更高的权限,可以访问该页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)