我正在开发我的第一个Chrome扩展程序,我想在我的popup.js中运行此脚本:
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.7&appId=############";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
但它没有加载,我在控制台中看不到任何错误。
答案 0 :(得分:1)
Inspect
脚本src
未指定https
,因此使用了当前的方案chrome-extension:
。
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.7&appId=############";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
要允许在manifest.json中指定脚本contentSecurityPolicy:
"content_security_policy": "script-src 'self' https://connect.facebook.net/ https://graph.facebook.com/; object-src 'self'"
要允许manifest.json中SDK权限加载的依赖脚本:
"permissions": [
"webNavigation",
"https://connect.facebook.net/de_DE/sdk.js*",
"https://graph.facebook.com/v2.1/*"
]
由于在manifest.json中无法识别URL的哈希部分,因此应使用通配符*
。