2011-09-16 2 views
3

Ce problème me tue vraiment, j'ai été googler depuis très longtemps maintenant et je ne peux pas trouver la réponse à cela.<fb:like> Le bouton ne fonctionne pas dans IE8

Le problème est que mon bouton LIKE ne rend pas sur IE8 (Internet Explorer 8), mais il montre sur le chrome.

Voici une URL vers une page de test: http://78.69.194.141/vinn/test.php

Si vous utilisez ne pas utiliser IE8 vous devriez voir un bouton comme sous « en-tête de h5 ».

Voici le code lié:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 
<link rel="stylesheet" type="text/css" href="fbstyle.css" /> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : '195633697119592', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true, // parse XFBML 
    channelURL : 'http://78.69.194.141/vinn/channel.html', // channel.html file 
    oauth : true // enable OAuth 2.0 
    }); 
    FB.UIServer.setLoadedNode = function(a,b){FB.UIServer._loadedNodes[a.id]=b;}; 
</script> 

et le bouton:

<fb:like layout="button_count"></fb:like> 

J'ai essayé beaucoup de différentes façons, charger les async js et tous les autres moyens mentionnés sur internet mais avec des résultats .

Il semble que ce problème ne se produise que sur mon serveur, car les boutons de ce type fonctionnent à d'autres endroits, avec le même code EXACT (afaik).

Quelqu'un at-il une idée?

+0

probablement quelque chose soit dans votre DOM (HTML invalide, etc.) ou si vous avez d'autres JS qui jette une erreur dans IE. Je n'ai pas configuré ma machine virtuelle pour IE8 en ce moment ou je regarderais de plus près votre URL de test. – xentek

Répondre

4

IE8 lance cette erreur:

SCRIPT5007: Unable to set value of the property 'innerHTML': object is null or undefined all.js, line 6 character 1252

Il fait référence à l'iframe qui facebook remplace l'étiquette <fb:like> avec ce qui suggère que soit les options de configuration du bouton sont erronés, ou il n'y a pas valide HTML sur la page qui est en train de gâcher le DOM afin que le JavaScript ne trouve pas l'iframe.

http://validator.w3.org/check?verbose=1&uri=http%3a%2f%2f78.69.194.141%2fvinn%2ftest.php

Un bon endroit pour commencer serait de mettre en <head> et <body> tags.

+1

+1 pour ajouter des balises tête/corps :) – ripper234

1

Vous semblez mélanger <head> étiquettes et <body> éléments ensemble et ne pas définir les sections correctement. Vous avez besoin d'une section <head> pour la balise <link> (et éventuellement quelques balises <script>) et une section <body> pour des éléments comme <div>. En l'état, votre page n'est pas un code HTML valide.

0

J'ai eu le même problème. Essayez d'ajouter xmlns:fb="http://www.facebook.com/2008/fbml" à tag <html>, comme ceci:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">