XBFMLタグを使用して、自分のページにFacebookのようなボタンがあります。Firefoxでも問題なく動作するので、コードは動作していると思います。
ただし、IE 8(IE 7準拠モードで実行)では、ボタンはまったく表示されません。
すべてを「いいね」ボタンのiFrameバージョンに切り替えると、すべて機能します。しかし、XBFMLタグを使用すると、機能しません。
誰かがこのようなものに遭遇しますか?
XBFMLタグを使用して、自分のページにFacebookのようなボタンがあります。Firefoxでも問題なく動作するので、コードは動作していると思います。
ただし、IE 8(IE 7準拠モードで実行)では、ボタンはまったく表示されません。
すべてを「いいね」ボタンのiFrameバージョンに切り替えると、すべて機能します。しかし、XBFMLタグを使用すると、機能しません。
誰かがこのようなものに遭遇しますか?
FB名前空間のHTMLドキュメントにxmlns属性を追加してみてください。
xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/"
これは、FirefoxがIEに対して寛容すぎるもう1つのケースです。
属性:xmlns:fb = "http://www.facebook.com/2008/fbml"は、FacebookConnectのドキュメントで「使用する必要がある」と記載されています。ここにいくつかのポインタ。
私はあなたとは少し異なる実装をしていると思いますが、IEだけで私のFacebookソーシャルボタンが表示されないという同じ一般的な問題があります。Facebookのスクリプトタグをページの下部に配置したことが原因であることが判明しました。解決策は移動することでした
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
それが私のボタン挿入の前だったように:
<fb:like href="" send="true" layout="button_count" width="350" show_faces="true" font=""></fb:like>
その後、ボタンはIEにも表示され始めました。
if(document.namespaces) {
//IE
document.namespaces.add("fb", "http://ogp.me/ns#");
document.namespaces.add("og", "http://ogp.me/ns/fb#");
if (typeof(console) != 'undefined' && console) {
console.log("IE: OG and FB NameSpace added");
} else {
//Other Browsers
var htmlRoot = jQuery(jQuery("html").get(0));
if(typeof(htmlRoot.attr("xmlns:fb")) == "undefined") {
htmlRoot.attr("xmlns:og",'http://ogp.me/ns#');
htmlRoot.attr("xmlns:fb",'http://ogp.me/ns/fb#');
if (typeof(console) != 'undefined' && console) {
console.log("OG and FB NameSpace added");
}
}
}
これを$(document).ready()関数に入れないでください!