为什么facebook stream.share popup在Safari中不起作用?

时间:2011-02-03 04:11:02

标签: facebook safari facebook-javascript-sdk

自从上周以来,我一直在努力解决这个问题。对于我的生活,我似乎无法将其用于safari,所有其他浏览器都会呈现除Safari之外的弹出窗口。

看起来很简单,异步加载javascript-sdk,启动它,然后使用方法'stream.publish'调用FB.ui。问题是我知道这段代码应该在safari中工作,因为这里的例子是http://fbrell.com/fb.ui/stream.share

我正在使用我们使用的这个P3P标题解决了IE7的问题:

Response.AddHeader("P3P", "CP=\"NON DSP COR DEVa PSAa IVAo CONo OUR IND UNI PUR NAV DEM LOC\", " + "policyref=\"http://sweepstakes.mars.com/w3c/p3p.xml\"");

我希望有人可以提供能够让它发挥作用的神奇技巧。这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>test</title>
</head>
<body>
    <div id="fb-root">
    </div>
    <script>
        window.fbAsyncInit = function (){

            FB.init({ appId: '<%= Common.appID %>', status: true, cookie: true,
                xfbml: true
            });

            var publish = {
                method: 'stream.publish',
                message: 'test',
                display: 'dialog'
            };

            FB.ui(publish);
        };

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

    </script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

经过多次考验和挫折之后。一位同事指出,“feed”是做“stream.publish”的新方式。这解决了这个问题。

编辑:过时的答案。