0

しばらくの間、この問題のトラブルシューティングを試みましたが、成功しませんでした。

https://mantry.com/giveaway/にコンテスト ページを設定しました。そこには 2 つの Facebook Like ボタンがあります (十分に文書化されたものに問題があったため、これらは Facebook Like ボックスの代わりに使用されています)。 edge.subscribe イベントが発生しない)。

基本的に、Mozilla、Chrome、Safari ではすべて動作していますが、IE9 / IE8 では fb:like ボタンがレンダリングされません。

xml 名前空間を次のように宣言しました。

<script>
window.fbAsyncInit = function() {
FB.init({
  appId      : '274762932654075', // App ID
  channelUrl : '//mantry.com/channel.php', // Channel File
  status     : true, // check login status
  xfbml      : true  // parse XFBML
});

FB.XFBML.parse(document.getElementById('fb1'));
FB.XFBML.parse(document.getElementById('fb2'));

// Additional initialization code here
FB.Event.subscribe('edge.create', function(href) {
    if(href == 'http://www.facebook.com/themantry'){
        social[0] = 1;
    };
    if(href == 'http://www.facebook.com/<?php echo get_post_meta( $post->ID, 'contest_fb', true);?>'){
        social[1] = 1;
    };
    socialClick();
});

};

// Load the SDK Asynchronously
(function(d){
 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 ref.parentNode.insertBefore(js, ref);
 }(document));
</script>

FB.XFBML.parse() の有無にかかわらず試してみましたが、どちらもうまくいきませんでした。

関連する場合の fb:like 要素は次のとおりです。

<fb:like href="http://www.facebook.com/themantry" send="false" width="450" show_faces="false" font="" data-layout="button_count" id="fb1"></fb:like>

どんなアイデアでも大歓迎です。私が省略した可能性のあるものは何でも喜んで詳しく説明します. 前もって感謝します!

4

1 に答える 1

0

他の誰かが私と同じ問題に遭遇した場合に備えて投稿すると思いました。

非表示の div にいいねボタンがあり、ユーザーが Facebook に接続した後にのみ表示されました。非表示の要素で FBML の解析に問題があるように見えるので、最終的に FB.XFBML.parse(); を移動しました。要素が表示された後に発火します。

すなわち

$('.fb-connect').hide();
$('.fb-boxes').fadeIn(200,function(){
        FB.XFBML.parse();
    });

現在、IE9 で正しく動作しています。

于 2013-07-26T13:32:30.267 に答える