【问题标题】:jquery facebook share not working mobile but works on desktopjquery facebook share 不能在移动设备上工作,但可以在桌面上工作
【发布时间】:2014-02-24 22:29:46
【问题描述】:

我有一个可以在桌面上完美运行的完整 Facebook 共享弹出窗口,但在移动设备(例如 iphone 的 safari)上查看时只显示一个 facebook 输入字段?

演示小提琴http://jsfiddle.net/EYxTJ/345/

$('div').click(function(){   
    fb_click()
});

function fb_click() {
        var fb_title     = encodeURIComponent('my title goes here!');
        var fb_descr     = encodeURIComponent('my description goes here');
        var fb_url       = encodeURIComponent('www.example.com');
        var fb_image     = encodeURIComponent('http://www.highyieldbond.com/wp-content/uploads/2013/04/silver-apple-logo-apple-picture1.jpg');

        window.open('http://www.facebook.com/sharer.php?s=100&p[title]=' + fb_title + '&p[summary]=' + fb_descr + '&p[url]=' + fb_url + '&p[images][0]=' + fb_image, 'width=450','height=450');
    }

它在移动设备上的显示方式

fb share mobile

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    某些移动设备不处理点击事件。你必须使用:

    $('div').bind("click touchstart", function(){   
        fb_click();
    });
    

    【讨论】:

    • 谢谢,但事件本身触发正常。 facebook API 没有正确处理它。为了完整起见,我试过了,但没有用 DEMO jsfiddle.net/EYxTJ/346
    • 我在 iPhone 的 safari 和 chrome 上尝试了上述方法,但没有解决问题
    【解决方案2】:

    这是一个常见问题。你有两个选择(据我所知)。

    1) 使用非常容易使用的php facebook SDK。

    2) 使用内联 javascript,因为这似乎绕过了常见问题

    演示http://jsfiddle.net/5kNAw/1/

    sharer.php 方法不允许将参数解析到手机版的facebook。一种解决方法是为您的共享弹出加载桌面版本。您可以使用上面的 JS 函数来执行此操作,但只需对 URL 稍作修改。正如您将在下面的示例中看到的那样,我在sharer.php 之后添加了m2w&m2w 表示“移动到网络”。

    window.open('http://www.facebook.com/sharer.php?m2w&s=100&p[title]=' + fb_title + '&p[summary]=' + fb_descr + '&p[url]=' + fb_url + '&p[images][0]=' + fb_image, 'width=450','height=450');

    【讨论】:

    • 抱歉,我不得不接受,因为这仅在您仅指定 URL 时才有效。一旦我添加了摘要和标题,它就会出现与以前相同的问题。为什么这个问题这么难解决!? :(
    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多