2009-05-28 5 views
0

Lors du développement d'un gadget Windows Vista/7 et la mise en forme du texte en utilisant addTextObject(), cela fonctionne:Pourquoi addTextObject() avec une variable jQuery ne fonctionne pas?

var mytext = "Hello"; 
document.getElementById("background").addTextObject(mytext , "Verdana", 11, "white", 10, 10); 

Mais je ne peux pas obtenir ce sélecteur jQuery dans une variable de travailler:

var mytext = $("#myid").text(); 
document.getElementById("background").addTextObject(mytext , "Verdana", 11, "white", 10, 10); 

Cela ne fonctionne pas, il écrit seulement une chaîne vide. Pourquoi?

Répondre

0

J'ai découvert pourquoi. Le contenu de mon div a été ajouté dynamiquement en utilisant jQuery.

<div id="myid"></div> 

$("#myid").append("somedata"); 
var mytext = $("#myid").text(); 
System.Debug.outputString(mytext); // Empty 

Pour une raison quelconque, cela ne fonctionne pas dans le gadget. Il fonctionne dans un fichier HTML brut si ...

contenu statique ne fonctionne dans le gadget:

<div id="myid">somedata</div> 

var mytext = $("#myid").text(); 
System.Debug.outputString(mytext); // Ok 

Quelqu'un peut-il expliquer comment je peux interroger le contenu dynamiquement ajouté dans une barre latérale? MISE À JOUR: This résolu mon problème.

+0

J'ai eu des cas où j'ai dû abandonner le contrôle afin de permettre au navigateur de faire son travail. Pour ce faire, j'ai mis le code dans une fonction appelée par setTimeout(). – Nosredna

+0

J'ai trouvé une solution de contournement, voir ici: http://stackoverflow.com/questions/923489/is-there-a-way-to-query-html-xml-content-from-a-variable-using-jquery –

0

Essayez $(document).ready

 

$(document).ready(function() { 
    $("#myid").append("somedata"); 
    var mytext = $("#myid").text(); 
    System.Debug.outputString(mytext); 
}); 
 

Peut-être que votre code est en cours d'exécution avant que le DOM terminé.

Questions connexes