【发布时间】:2019-01-21 22:41:56
【问题描述】:
我正在处理将作为产品压缩文档包含在内的网页,因此它应该被解压缩并且只能通过file:///在本地访问
网页已经存在,我只需对它们进行改造即可。他们没有CSS。我想添加CSS。为了避免更改数千页,我想通过 JavaScript 插入 CSS。页面在一个框架中(另一个框架是菜单)。将父窗口中的 CSS 添加到框架会产生错误:例如,当尝试访问框架的 document 对象时,Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.。
有没有办法忽略以这种方式提供的网页的同源策略?
This question 似乎不是重复的,因为它要使用localhost
【问题讨论】:
-
你想做什么违反同源策略?你能做一些不同的事情吗?
-
如果您想从您的网页提供一个 zip 文件,它必须通过后端完成,所以这是我的理解。您可以在 localhost 上进行,但它应该是您的后端抓取并交付您的 zip 文件。这对客户来说并不方便,因为他们通常不会为此任务设置 localhost 环境。
-
@Brad 我正在对产品的现有 HTML 文档进行改造,将其放入框架中。页面很多,因此为避免更改现有的 html 页面,我想将 CSS(通过 JavaScript)插入到该框架上出现的所有页面。
-
这是不可能的,而且有充分的理由。如果可能的话,网站将毫无根据地访问您文件系统中的任何文件,他们可以猜测到的路径。
-
让
FRAME联系父 DOM,而不是让父 DOM 联系子FRAME。然后家长可以回复。子 DOM 也可以传回对自身的引用,以便从父级进行操作。 stackoverflow.com/a/2620789/105539
标签: javascript html cors same-origin-policy