Chrome加载项会触发内容安全策略违规
最近,我开始开发一个chrome插件,它会在GitHub个用户个人资料中注入一个按钮。该插件旨在在GitHub用户配置文件上注入KeyBase按钮,该配置文件与KeyBase用户配置文件相对应,如图所示。
我的主要代码是用JavaScript编写的,可以在以下链接找到:
https://gist.github.com/psgs/10516497
我的manifest.json文件也如下:
https://gist.github.com/psgs/10516524
当代码作为chrome附加组件的一部分运行时,以下错误在JavaScript控制台中发送垃圾邮件,按下时,KeyBase按钮不会将用户链接到用户的KeyBase配置文件。
对于为什么会出现这些错误的任何见解都会非常感激!!
还可以在GitHub Issues page for the KeyBase Button repository找到更多信息。
答案 0 :(得分:1)
我尝试运行您的代码,但无法从屏幕截图中重现错误。基本上按钮注入正常,但是当我按下它时我得到了:
XMLHttpRequest无法加载https://www.keybase.io/psgs。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“https://github.com”访问。 PSGS:1 AJAX错误github-a1fec3e73d87f3550c635e371c8519308940f4b4.js:1
以下是我的想法:
您可以尝试将我们的click
处理程序添加到按钮,这将停止事件冒泡到GitHub处理程序,如下所示:
button
.attr('href', 'https://www.keybase.io/' + username)
.html('<span class="octicon octicon-key"></span>Keybase')
.click(function() {window.location = 'https://www.keybase.io/' + username})
无论如何,你想要达到的目标还不是很清楚。