如何修复加载Facebook javascript sdk时出现的错误?
我正在使用以下代码将Facebook javascript sdk加载到我的页面中:-如何修复加载Facebook javascript sdk时出现的错误?,javascript,facebook,facebook-javascript-sdk,Javascript,Facebook,Facebook Javascript Sdk,我正在使用以下代码将Facebook javascript sdk加载到我的页面中:- (function() { console.log('Hello World! From self executing function.'); var e = document.createElement('script'); e.async = true; e.type = 'text/
(function() {
console.log('Hello World! From self executing function.');
var e = document.createElement('script');
e.async = true;
e.type = 'text/javascript';
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
console.log('javascript sdk is appended into the fb-root element of the page.');
}());
它正在正确加载,但我的控制台中出现以下错误:-
Error: Permission denied to access property 'toString'
[Break On This Error]
...5(i(ca.getElementsByTagName('*')),'forEach',true,function(ka){if(!ea&&ka.getAttr...
如何解决这个问题
感谢您的帮助?Facebook javascript SDK通常会导致跨浏览器问题。为了解决这个问题,facebook本身集成了一种方法,即在FB.init()函数中添加一个频道url
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'YOUR_APP_ID', // App ID from the App Dashboard
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication
status : true, // check the login status upon init?
cookie : true, // set sessions cookies to allow your server to access the session?
xfbml : true // parse XFBML tags on this page?
});
// Additional initialization code such as adding Event Listeners goes here
};
添加通道文件可以解决跨浏览器问题
channel.html文件的内容应仅为一行:
<script src="//connect.facebook.net/en_US/all.js"></script>
FB.init()中的channelUrl参数是可选的,但强烈建议使用。提供通道文件有助于解决三个特定的已知问题
- 包含跨帧通信的代码的页面可能会导致社交冲突 插件显示为空白,没有channelUrl
- 如果未提供频道URL,且页面包含自动播放音频 或者视频,用户可能会听到两个音频流,因为该页面具有 已在后台为跨域第二次加载 沟通李>
- 频道文件将阻止在您的频道中包含额外的点击 服务器端日志。如果未指定channelUrl,则应 删除包含fb_xd_半身像或fb_xd_片段参数的页面视图 以确保正确计数
Facebook javascript SDK通常会导致跨浏览器问题。为了解决这个问题,facebook本身集成了一种方法,即在FB.init()函数中添加一个频道url
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'YOUR_APP_ID', // App ID from the App Dashboard
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication
status : true, // check the login status upon init?
cookie : true, // set sessions cookies to allow your server to access the session?
xfbml : true // parse XFBML tags on this page?
});
// Additional initialization code such as adding Event Listeners goes here
};
添加通道文件可以解决跨浏览器问题
channel.html文件的内容应仅为一行:
<script src="//connect.facebook.net/en_US/all.js"></script>
FB.init()中的channelUrl参数是可选的,但强烈建议使用。提供通道文件有助于解决三个特定的已知问题
- 包含跨帧通信的代码的页面可能会导致社交冲突 插件显示为空白,没有channelUrl
- 如果未提供频道URL,且页面包含自动播放音频 或者视频,用户可能会听到两个音频流,因为该页面具有 已在后台为跨域第二次加载 沟通李>
- 频道文件将阻止在您的频道中包含额外的点击 服务器端日志。如果未指定channelUrl,则应 删除包含fb_xd_半身像或fb_xd_片段参数的页面视图 以确保正确计数
哪个浏览器会出现此错误?在chrome下添加此脚本时,似乎没有错误。我现在正在使用FireFox。好的,我也会登记的@Adidi我使用的javascript代码来自于的教程。@Adidi我在chrome中也没有发现任何错误。所以这只是一个特定于浏览器的问题。我在Firefox中也没有发现任何错误。你需要检查的主要事情是facebook脚本确实已加载,你可以继续使用它并调用API。如何检查,但它正在加载,因为我可以登录用户并获取其facebook名称和facebook个人资料照片。你会在哪个浏览器中收到此错误?在chrome下添加此脚本时,似乎没有错误。我现在正在使用FireFox。好的,我也会登记的@Adidi我使用的javascript代码来自于的教程。@Adidi我在chrome中也没有发现任何错误。所以这只是一个特定于浏览器的问题。我在Firefox中也没有发现任何错误。你需要检查的主要事情是facebook脚本确实已加载,你可以继续使用它并调用API。如何检查,但它正在加载,因为我可以登录用户并获取他的facebook姓名和facebook个人资料照片。