javascript – 防止Facebook“喜欢”跨域错误的解决方法?

我一直在研究这个特定的错误一周,调试不同的社交按钮并将其缩小到Facebook一般:我实现的每个“喜欢”按钮(
HTML5,xfbml等)触发相同的跨域脚本错误.基本上,Facebook在点击“喜欢”时会触发每个iFrame(如下所示)的错误:

Unsafe JavaScript attempt to access frame with URL http://mediacdn.disqus.com/1326940420/build/system/def.html#xdm_e=http%3A%2F%2Fwww.vancitybuzz.com&xdm_c=default4311&xdm_p=1& from frame with URL http://www.facebook.com/plugins/like.php?channel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df31a0247d%26origin%3Dhttp%253A%252F%252Fwww.vancitybuzz.com%252Ff3c0eb7e0c%26relation%3Dparent.parent%26transport%3Dpostmessage&extended_social_context=false&href=http%3A%2F%2Fwww.vancitybuzz.com%2F2012%2F01%2Fchinese-new-year-events-2012-vancouver-richmond-burnaby%2F&layout=box_count&locale=en_US&node_type=link&sdk=joey&send=false&show_faces=false&width=90. Domains, protocols and ports must match.

为什么这不重复:即使没有推特按钮和谷歌按钮也会出现问题.它也出现在“喜欢”按钮的每个实现中.症状指向一个新问题.

尝试的方法:我尝试了Like按钮的多个“版本”,但都有同样的问题.它甚至与DISQUS相冲突.

嫌疑人:没有任何DISQUS代码的页面正常运行.这个变量(由DISQUS wordpress插件输出)是可疑的:

var facebookXdReceiverPath = 'http://www.vancitybuzz.com/wp-content/plugins/disqus-comment-system/xd_receiver.htm'; 

此外,Facebook的javascript输出也是可疑的.

自己看看:转到http://www.vancitybuzz.com/2012/01/research-in-motion-ceos-resign/它可能会改变.

问题

鉴于此处的信息,是否有人知道强制解决跨域错误的解决方法?非常感谢.

最佳答案 在多人调查此问题后,包括我自己,目前没有针对跨域错误的解决方法,因为Facebook使用iFrame进行通信.

这也适用于今天的Google Plus按钮.

然而,未来看起来很光明.谷歌开发者(也可能是Facebook)已经确认他们正在开发一种新的解决方案.

与此同时,有些人报道使用Facebook和其他小部件插件似乎可以缓解Wordpress结构网站中的问题.没有保证.

http://mashable.com/2010/05/07/wordpress-facebook-like-buttons/

未来:如果使用websockets(和flash ws fallbacks),我不会感到惊讶,但我会把它留给平台开发者

点赞