过去一天我一直在为此苦苦挣扎,并且几乎没有在线资源可用于集成 Chrome 扩展程序和 Mixpanel。我希望这个线程是人们在处理将 Mixpanel 集成到 Chrome 扩展时所指的那个线程。
我的 Mixpanel 集成的目标是能够使用我的内容脚本content.js
和我的popup.js
(所以基本上在我的整个扩展中)跟踪事件
我有一个 popup.html 文件,它在标签<script src="mixpanel.js"></script>
之前调用。</head>
在我的mixpanel.js
文件中是:
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,
e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
mixpanel.init("MY_TOKEN");
当我单击我的扩展程序按钮并检查它时,控制台会输出以下错误:
Refused to load the script 'http://cdn.mxpnl.com/libs/mixpanel-2.2.min.js' because it violates the following Content Security Policy directive: "script-src 'self' https://cdn.mxpnl.com".
这是我manifest.json
文件的权限部分:
"permissions": ["https://twitter.com/"],
"content_security_policy": "script-src 'self' https://cdn.mxpnl.com; object-src 'self'"
该扩展需要在 Twitter 上运行。
我已阅读 Google 编写的内容安全政策文档,但没有帮助
知道我在这里做错了什么吗?任何帮助将不胜感激!