2

だから私は他の多くのような問題を抱えています: Facebook Like Box は IE8 (IE7 OK) で表示されません。私はそれについて多くの投稿を見つけ、すべての解決策を試しましたが、成功しませんでした... IE8 メッセージ: FB.FBXML Null or not an object

注意: FB Like Box のサイズ変更を処理する関数があります。

これが私のHTML5コードです:

<!doctype html>
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="fr" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/"  xmlns:fb="http://www.facebook.com/2008/fbml"><![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="fr"> <!--<![endif]-->
<head>
...
    <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
</head>
<body>
...
    <article>
    <div class="row" id="content">
            <div class="twelvecol last">
            <div id="fb-root"></div>
                <div class="fb-like-box" data-href="http://www.facebook.com/divstudio" data-width="1140" data-show-faces="true" data-stream="true" data-header="false"></div>
            </div>
    </div>
    </article>
...

<script>
$(document).ready(function(){
        var contentwidth = $('#content').width();
        $('.fb-like-box').attr('data-width', contentwidth - '40');
        FB.FBXML.parse(document.getElementsByClassName('.fb-like-box'));
});
</script> 

 <script>(function(d, s, id) {
                  var js, fjs = d.getElementsByTagName(s)[0];
                  if (d.getElementById(id)) {return;}
                  js = d.createElement(s); js.id = id;
                  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
                  fjs.parentNode.insertBefore(js, fjs);
                }(document, 'script', 'facebook-jssdk'));</script>      
</body>
</html>

何か案は ?

ウェブサイト : http://www.divstudio.fr/emergenza/jazz/actu.html

ありがとう

4

3 に答える 3

4

これらの行をタグに追加する必要があります。

xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/"
xmlns:fb="http://www.facebook.com/2008/fbml"

タグにすでに属性がある場合は、そのままにしておきます。開始htmlタグがこのようになるようにします。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">

キャッシュが有効になっている場合は、キャッシュをクリアします。IE-8で動作するはずです

于 2012-04-10T19:56:16.200 に答える
3

同じ問題があり、適切な xmlns 属性を追加しても役に立ちませんでした。結局のところ、私の問題の原因は別の問題に関連しています:ユーザーが Facebook にログインしていないときに Facebook のようなボックスが表示されない. Igy と wasim kazi は、私を解決に導く答えを持っていました。問題を解決する方法は次のとおりです。

  1. いいねボックスに反映させたいページを運営するFacebookアカウントにログインします。
  2. 左側のナビゲーション バーで、[ページ] をクリックします。
  3. ページのタイトルをクリックして、そのページの管理パネルを表示します。
  4. [ページの編集] -> [設定の編集] をクリックします。
  5. 「国の制限」というラベルの付いたボックスが表示されます。このボックスに国がリストされている場合、ユーザーが Facebook にログオンしていない場合、いいね! ボックスは空白になり、Internet Explorer (7、8、9) では空白になります。これは理にかなっています。Facebook が確実に地理的制限を強制できる唯一の方法は、ユーザーがログインしていることを確認することです。これが IE に影響を与える理由 (ユーザーがログインしているかどうか) は謎ですが、それは私の場合の問題の原因。
于 2013-05-10T01:33:09.173 に答える
0

drupal6のFacebookモジュールでも同じ問題が発生しました。

マークアップタイプをXFBMLからHTML5に変更することで問題を解決しました

<head>次に、次のセクションにHTML5スクリプトを追加しました。

<!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

これで問題も解決することを願っています。

于 2012-01-06T21:01:45.783 に答える