使用Facebook共享的IE出错 - 并且没有关闭窗口

时间:2011-09-16 16:24:59

标签: javascript facebook feed

我正在使用Facebook上几乎没有修改过的示例代码发布到用户的Feed:

<a class="facebook popup" 
href="" 
title="Post to Facebook"
onclick="FB.ui(
    {
        method: 'feed',
        name: 'Feedback from Customer in x',
        link: 'http://localhost/User/Feedback.aspx',
        picture: 'http://localhost/Images/Picture.jpg',
        caption: 'Caption goes here.',
        description: 'Description goes here.'
    }
);
return false;">
<img alt="Post to Facebook" src="../Images/feedback-fb.png"/>

但是我在IE(9)中看到了一些问题。

  1. 脚本错误:SCRIPT70: Permission denied all.js?_=1316190103502, line 22 character 4250.
  2. 当用户按下取消或发布时,对话框不会关闭。
  3. 如果它有任何区别,大多数浏览器使用“对话框”显示类型,其中IE在这种情况下由于某种原因使用“弹出窗口”。如果我强制它使用display:'popup'然后(至少)Chrome似乎工作正常。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

对于这个特殊问题,我可以通过配置我的服务器返回标头(这是nginx语法)在IE9中消除错误:

  add_header P3P 'CP="HONK"';

您可以对其他服务器(如apache等)执行相同操作,或者从服务器脚本返回它。我没有这样做,但我相信php中的语法是:

header('P3P: CP=HONK');

这是一个公开的垫片,因为实施P3P的“properly”还有很多。但是,我们只想看看使这个错误消失所需的最小努力,以及上述工作。

答案 1 :(得分:1)

我有两个问题。首先是FB中的IE错误,它有一个解决方法(这里描述的那个)。错误:20168。解决方法:

FB.UIServer.setLoadedNode = function (a, b) { FB.UIServer._loadedNodes[a.id] = b; }; // IE hack to correct FB bug 20168

在此this question发现。

但是我的FB应用程序域也遇到了问题 - 我必须将FB应用程序配置为指向我正在使用的特定子域(x.domainname.com),否则在IE中我调用FB.login时我得到了权限被拒绝错误和另一个空白屏幕。