2009-11-26 5 views
0

Bonjour, J'ai des problèmes pour utiliser fbjs et créer dynamiquement un div puis utiliser appendChild pour l'ajouter à un div existant.fbjs setInnerFBML ne fonctionne pas dans Safari

Voici un exemple:

var count = 0; 
function addDiv(){ 
    var theDiv = document.createElement('div'); 
    theDiv.setId(count); 
    theDiv.setInnerFBML('some html here'); 

    count++; 
    document.getElementById('someExistingDiv').appendChild(theDiv); 
} 

quelqu'un peut-il s'il vous plaît me dire ce qui est erroné ou s'il y a un problème avec appendChild inSafari lors de l'utilisation setInnerFBML. Cela fonctionne parfaitement lors de l'utilisation de setTextValue.

PS Il fonctionne Firefox, mais il pas dans Safari (Safari 4.0.3 pour être précis)

Merci

MISE À JOUR:

il a travaillé sur la première div jointe et a échoué après

Répondre

0

Il s'est avéré que c'était un bug connu qui doit encore être corrigé. Pour l'instant, j'ai créé une solution de contournement et je l'affiche ici pour de futures références.

Depuis setInnerFBML a travaillé sur le premier ajout et a échoué après (aucune idée de pourquoi), j'ai décidé de cloner le premier div ajouté et l'utiliser pour les futurs ajouts. Voici mon code.

var count = 0; 
function addDiv(){ 
    if(count == 0){ 
     var theDiv = document.createElement('div'); 
     theDiv.setInnerFBML('some html here'); 
    }else{ 
     var theDiv = document.getElementById('0').cloneNode(true); 
    } 

    theDiv.setId(count); 
    count++; 

    document.getElementById('someExistingDiv').appendChild(theDiv); 
} 

Espérons que cela aide quelqu'un.

1

setInnerFBML ne prend que le FBML pré-rendu, il doit donc provenir d'une requête FBML ajax ou être pré-rendu dans une balise fb: js-string. Il ne peut pas être généré à la volée.

Questions connexes