有没有一种方法可以忽略本地服务的网页(file:///)的同源策略?

5
我正在处理一些网页,作为产品的压缩文档的一部分,所以期望这些文档被解压后只能通过file:///本地访问。
这些网页已经存在,我只需要给它们一个新的外观。它们没有CSS样式,我想要添加CSS样式。为了避免改变成千上万个页面,我想通过JavaScript插入CSS样式。但是,将CSS从父窗口添加到子窗口会导致错误:Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.例如,试图访问子窗口的document对象时。
有没有一种方法可以忽略同源策略,使得这种方式提供的网页可以正常访问? 这个问题似乎不是重复的,因为它想使用localhost

1
你试图做什么违反了同源策略?你能不能简单地做一些不同的事情? - Brad
如果您想从网页上提供一个zip文件,那么必须通过后端来完成,这是我的理解。您可以在本地主机上完成此操作,但应该是您的后端抓取和提供zip文件。对于客户而言,这并不方便,因为通常他们不会为此任务设置本地主机环境。 - K F
2
这是不可能的,也有充分的理由。如果可能的话,网站将无授权地访问任何它能猜测路径的文件系统中的文件。 - Patrick Roberts
1
FRAME 与父 DOM 进行联系,而不是由父 DOM 联系子 FRAME。然后父级可以回答。子 DOM 也可以传回一个对自身的引用,以便父级进行操作。https://dev59.com/eXE85IYBdhLWcg3wwWet#2620789 - Volomike
为什么你不直接将CSS文件附加到页面上呢?唯一的选择是使用一个标志来忽略它... - epascarello
显示剩余3条评论
2个回答

0

Firefox认为当前文件夹及其子文件夹是同源的,因此可能不需要添加插件。 - Kaiido

-1

您可以启动Chrome并禁用Web安全性--disable-web-security

这将允许更多的操作,而不仅仅是避开CORS的限制,但如果您只是为了开发目的使用自己的代码库,则是安全的。

在开始不安全的会话之前,请关闭所有的Chrome窗口。

chromium-browser --disable-web-security --user-data-dir="[某个目录]"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接