2014-06-15 56 views
0

我正在加載模塊窗口中的Facebook註釋插件 - 正在通過ajax注入該窗口的內容。因爲這種模式本身沒有url,儘管我在設置fb註釋插件時傳遞了一個僞造的URL,以便讓facebook區分模態頁面。Facebook評論URL無法到達

問題是雖然評論工作正常Facebook顯示一個醜陋的警告消息,因爲它無法訪問我已告訴它的網頁的URL。

代碼是:

 $(".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 
     }); 

    }); 

我想有一對夫婦涉及重定向或歷史pushState的解決方案,但由於該插件正常工作,我不希望通過設計一種解決方案,我真的不需要。

我試着將它隱藏在CSS中 - 即使在ajaxComplete函數中和FB.XFBML.parse()之後,但似乎不起作用。

(請注意,以上網址已被替換爲「http://example.com/」)

根頁中有所有OG標籤,並在FB設置的應用程序域字段沒有在前面WWW或任何的。

回答

0

我通過將URI段設置爲查詢字符串而不是目錄來解決此問題。

取而代之的是:

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

使用此:

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

這樣的網頁並不需要存在,但仍滿足Facebook的唯一URL的要求。