2013-05-09 50 views
2

我想將我的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沒有被拒絕。

就這樣,有什麼想法?

預先感謝您!

回答