Facebook共享插件按钮不共享正确的URL

时间:2015-11-21 07:49:02

标签: javascript ajax facebook post facebook-javascript-sdk

我的制作网站位于:http://infinite-brushlands-3960.herokuapp.com/

我按照此处的说明设置了javascript SDK:https://developers.facebook.com/docs/javascript/quickstart/v2.5

当用户点击"分享此附表"时,将运行以下代码:

ExifInterface ei = new ExifInterface(photoPath);
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

switch(orientation) {
    case ExifInterface.ORIENTATION_ROTATE_90:
        rotateImage(bitmap, 90);
        break;
    case ExifInterface.ORIENTATION_ROTATE_180:
        rotateImage(bitmap, 180);
        break;
    // etc.
}

但是尽管将facebook按钮的data-href属性设置为我想要分享的网址(如此处所述https://developers.facebook.com/docs/plugins/share-button),但点击该按钮仍会将我的主页共享给facebook我在那里指定的链接。检查浏览器检查器中的按钮显示它确实具有正确的url作为data-href属性。

为什么插件没有共享正确的网址?

1 个答案:

答案 0 :(得分:1)

由于您要更改ajax加载上的按钮网址,因此您必须在更改属性后重新初始化Facebook共享按钮。

尝试将此添加到成功回调的结尾

FB.XFBML.parse();

所以你应该有像

这样的东西
$('#share_schedule').click(function(){
    if ($('#share_url_ul').children().length >= 1){
        $('#share_url_ul').empty();
    }
    // Take care of no classes case "You cannot share an empty schedule."
    $.ajax({
        method: "POST",
        url: "/share/",
        data: JSON.stringify(localStorage),
        contentType: "application/json; charset=utf-8",
        dataType: "text",
        success: function(response){
            var shared_url = document.createElement('a');
            $(shared_url).css('display', 'block');
            $(shared_url).attr('href', window.location.href + 'shared/' + response);
            $(shared_url).attr('id', 'share_link');
            shared_url.innerHTML = window.location.href + 'shared/' + response;
            $('#share_url_ul').append(shared_url);

            $('#fb_share_btn').attr('data-href', window.location.href + 'shared/' + response);

            FB.XFBML.parse();

        },
        error: function(error){
            console.log(error);
        }
    });
});