在iFrame中加载Facebook共享器

在iFrame中加载Facebook共享器,facebook,Facebook,我只是想把facebook共享页面加载到一个iframe中,但没有成功 这是我用于iframe的代码 <iframe src="http://www.facebook.com/sharer.php?u=http://www.website.com&t=Title Hoes Here"></iframe> 当我查看页面时,它是空白的,iframe源是 <iframe src="http://www.facebook.com/sharer.php?u=ht

我只是想把facebook共享页面加载到一个iframe中,但没有成功

这是我用于iframe的代码

<iframe src="http://www.facebook.com/sharer.php?u=http://www.website.com&t=Title Hoes Here"></iframe>

当我查看页面时,它是空白的,iframe源是

<iframe src="http://www.facebook.com/sharer.php?u=http://www.website.com&t=Title Hoes Here">
<html>
<body></body>
</html>
</iframe>

如果我直接查看url,所有内容都会正确显示

facebook是否阻止在iFrame中加载共享者?我有什么办法可以让facebook共享器出现在模式窗口中


谢谢

是的,Facebook几乎阻止了iFrame内所有屏幕的加载

如果您使用的是FacebookConnect,那么您可以执行一些简单的javascript方法来在页面上获得一个对话框,而启动Facebook将需要大量的工作来使屏幕看起来更漂亮

请参阅此链接()或使用以下代码:

FB.ui(
  {
    method: 'feed',
    name: 'Facebook Dialogs',
    link: 'http://developers.facebook.com/docs/reference/dialogs/',
    picture: 'http://fbrell.com/f8.jpg',
    caption: 'Reference Documentation',
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
  },
  function(response) {
    if (response && response.post_id) {
      alert('Post was published.');
    } else {
      alert('Post was not published.');
    }
  }
);
如果你没有使用FacebookConnect,那么你唯一的选择就是弹出一个窗口

另一个选择是使用like/send按钮插件,这不是完全相同的功能,但更容易集成

干杯


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
头上的那条线

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};

(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());

</script>

<script>
$(document).ready(function(){
$('#share_button').live('click', function(e){
e.preventDefault();
FB.ui(
{

method: 'feed',
name: '',
link: '',
picture: '',
caption: '',
description: '',
message: ''
});
});
});
</script>

window.fbAsyninit=函数(){
FB.init({
appId:“”,
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());
$(文档).ready(函数(){
$(“#共享按钮”).live('单击',函数(e){
e、 预防默认值();
FB.ui(
{
方法:“提要”,
名称:“”,
链接:“”,
图片:'',
标题:'',
说明:“”,
消息:“”
});
});
});

您不应该在新开发中使用不推荐使用的函数。它不受支持,随时都会从我们脚下被拉出。请参阅:有关您应该做什么的更多信息。差不多9年后,
sharer.php
仍然受到支持。F@#$facebook、twitter、linked in、pinterest和所有其他希望监视您的用户并降低页面加载速度的人。它们都不允许仅在用户希望使用服务时加载其内容。我希望它在iFrame中看起来好看,但他们不允许。Google Plus是唯一一个允许iframe的。@pathfinder:是的,也做了一些研究,只有当用户点击它时才会加载社交媒体垃圾。在这个网站上(它的活动现在已经结束),你可以看到我是如何做到这一点的。例如,点击facebook图标,它会要求您确认第三方cookie。在此之后,如果您决定继续,将加载addthis插件。此方法可以为用户节省大量流量,并且只有在您接受第三方cookie对话框时才能跟踪用户。此方法还使您无需为页面上的所有用户添加cookie策略横幅。