javascript - 开发浏览器扩展时的同源策略问题
问题描述
尝试开发一个简单的 Firefox 扩展。该扩展程序采用特定网站并将页面嵌入另一个网页的预定义位置。所以两个不同的领域,彼此完全不相关。我知道同源策略不适用于浏览器扩展,并且我查看了其他 stackoverflow 问题,例如这个和这里。
我的问题是我permissions
在文件中添加了标签manifest.json
,如下所示:
"permissions": ["*://www.abcwebsite.com/*"]
abcwebsite.com 是我要嵌入的网站。我还将两个网站都添加"matches"
到content_scripts
.
但是,我仍然无法访问嵌入式网站的 DOM 结构。
我可以很好地嵌入整个网站,但我试图只嵌入页面的特定部分。我不确定我要去哪里错了,
解决方案
该扩展程序采用特定网站并将页面嵌入另一个网页的预定义位置
您不会跳过same-origin-policy,因为一个来源会加载另一个来源的内容。执行客户端代码的浏览器是否使用扩展应用相同的策略。一般概念是您不能在两个来源之间共享资源,除非共享的来源特别允许另一个来源。
后台脚本,否则
可以向他们拥有主机权限的任何主机发出 XHR 请求。
所以如果可能的话,这个问题的解决方案是一个背景问题。
推荐阅读
- javascript - 导入模块时找不到ts文件中的函数
- android - 在 android 中使用 AccessibilityService 是否使其成为系统应用程序?
- html - 用包含每个字符的 span 替换字符串
- python - postman、curl 和 wget 工作时无法通过 python 请求获取 cookie
- javascript - 无法让 javascript 函数与下拉列表一起使用
- html - 如何使此部分具有响应性
- python - 如何在方法中返回给定键的值 - 字典
- jms - 为什么 spring-cloud-stream 在向 Solace 主题发布消息时不填充 JMSMessageID?
- c# - 如何通过 .NET Core 控制台应用程序从 UDP 网络服务器发送和接收命令
- java - Jersey web.xml 到基于注释的配置以及 HK2 绑定