Facebook评论网址无法访问

时间:2014-06-15 02:31:12

标签: facebook facebook-comments

我在一个模态窗口中加载了facebook评论插件 - 通过ajax将内容注入到该窗口中。因此,模态本身没有url,虽然我在设置fb评论插件时传递了一个假URL,以便facebook区分模态页面。

问题是虽然评论工作正常但Facebook显示一条丑陋的警告信息,因为它无法访问我告诉它该网页已开启的网址。

代码是:

        $(".element").click(function () {
        $("#page").slideDown();
        $.get("/articles" + $(this).children(".ajaxloc").text(), function (data) {
            $("#ajax-content").html(data);
        });

        $(document).ajaxComplete(function () {
            var url = $('#ajax-content h1').text().replace(" ", "");
            $('#fb-comments').remove(); // remove any old comment plugins
            $("#fbCommentsPlaceholder").html('<div class="fb-comments" id="fb-comments" data-href="https://example.com/' + url + '"data-width="620" data-numposts="5" data-colorscheme="light"></div>');
            FB.XFBML.parse(); // re-render the comments plugin in order to set it up on next modal click
        });

    });

我想有一些涉及重定向或历史状态的解决方案,但由于插件工作正常,我不想过度设计我不需要的解决方案。

我已经尝试将其隐藏在CSS中 - 甚至在ajaxComplete函数中以及在FB.XFBML.parse()之后,但这似乎不起作用。

(请注意,上面的网址已替换为“http://example.com/”)

根页面中包含所有og标记,fb设置中的app域字段前面没有www或任何内容。

1 个答案:

答案 0 :(得分:0)

我通过将URI段设置为查询字符串而不是目录来解决此问题。

而不是:

var url = 'https://example.com' + value;

使用此:

var url = 'https://example.com/?key=' + value;

这样页面不需要存在,但仍然满足Facebook独特的URL要求。