我想將我的Chrome擴展程序與Facebook集成,但無法執行fbAsyncInit。Facebook window.fbAsyncInit未在Chrome擴展程序中觸發
這是我對我的分機的HTML(editPage.html):
<body>
<div id="fb-root"> </div>
<script type="text/javascript" src="js/initializeFacebook.js"></script>
....
</body>
我打開這個網站通過調用:
chrome.tabs.create({
url : chrome.extension.getURL('editPage.html'),
selected : true
}, function(tab) {
});
這是什麼內部initializeFacebook.js(取自本文件:https://developers.facebook.com/docs/reference/javascript/)
(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/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
window.fbAsyncInit = function() {
console.log('lala');
// init the FB JS SDK
FB.init({
appId : 'XXXX',
status : true,
xfbml : true
});
FB.ui({
method : 'feed',
name : 'The Facebook SDK for Javascript',
caption : 'Bringing Facebook to the desktop and mobile web',
description : ('Description'),
link : 'https://developers.facebook.com/docs/reference/javascript/',
picture : 'http://www.fbrell.com/public/f8.jpg'
}, function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
});
};
這就是我對我的表現st.json,涉及到的Facebook:
"content_security_policy": "script-src 'self' https://connect.facebook.net; object-src 'self'",
正在發生的事情是,editPage.html頁面被打開,並在標題其實我有這樣的:
<script id="facebook-jssdk" src="https://connect.facebook.net/en_US/all.js"></script>
所以SDK是存在的。 ..我猜...但console.log('lala')從不顯示,我無法觸發fbAsyncInit。控制檯上也不會顯示任何錯誤。
我禁用了所有其他Chrome瀏覽器擴展程序,以確保Facebook沒有被拒絕。
就這樣,有什麼想法?
預先感謝您!
歡迎來到StackOverflow。請在答案本身中展開鏈接的內容,以便在鏈接被破壞時答案不會過時。有關更多信息,請參閱http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers。 – carlosfigueira 2013-09-19 03:50:32