首页 > 解决方案 > 开发浏览器扩展时的同源策略问题

问题描述

尝试开发一个简单的 Firefox 扩展。该扩展程序采用特定网站并将页面嵌入另一个网页的预定义位置。所以两个不同的领域,彼此完全不相关。我知道同源策略不适用于浏览器扩展,并且我查看了其他 stackoverflow 问题,例如这个这里

我的问题是我permissions在文件中添加了标签manifest.json,如下所示:

"permissions": ["*://www.abcwebsite.com/*"]

abcwebsite.com 是我要嵌入的网站。我还将两个网站都添加"matches"content_scripts.

但是,我仍然无法访问嵌入式网站的 DOM 结构。

我可以很好地嵌入整个网站,但我试图只嵌入页面的特定部分。我不确定我要去哪里错了,

标签: javascriptfirefox-addonsame-origin-policy

解决方案


该扩展程序采用特定网站并将页面嵌入另一个网页的预定义位置

您不会跳过same-origin-policy,因为一个来源会加载另一个来源的内容。执行客户端代码的浏览器是否使用扩展应用相同的策略。一般概念是您不能在两个来源之间共享资源,除非共享的来源特别允许另一个来源。

后台脚本,否则

可以向他们拥有主机权限的任何主机发出 XHR 请求。

资源

所以如果可能的话,这个问题的解决方案是一个背景问题。


推荐阅读