2009-05-28 5 views
0

Wenn ein Windows Vista/7 Gadget zu entwickeln und() mit addTextObject Text setzt aus, das funktioniert:Warum funktioniert das AddTextObject() nicht mit einer jQuery-Variablen?

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

Aber ich kann diesen jQuery-Selektor in eine Variable an der Arbeit:

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

Es funktioniert nicht, es schreibt nur eine leere Zeichenfolge. Warum?

Antwort

0

Ich fand heraus warum. Der Inhalt in meinem div wurde dynamisch mit jQuery hinzugefügt.

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

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

Aus irgendeinem Grund funktioniert dies nicht im Gadget. Es funktioniert in einer einfachen HTML-Datei, obwohl ...

Statische Inhalte im Gadget funktionieren:

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

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

Kann mir jemand erklären, wie ich dynamisch hinzugefügt Inhalte in einer Sidebar abfragen können? UPDATE: This löste mein Problem.

+0

Ich hatte Fälle, in denen ich die Kontrolle aufgeben musste, damit der Browser seine Arbeit machen konnte. Um dies zu tun, habe ich den Code in eine Funktion von setTimeout() aufgerufen. – Nosredna

+0

Ich habe einen Workaround gefunden, siehe hier: http://stackoverflow.com/questions/923489/is-there-a-way-to-query-html-xml-content-from-a-variable-using-jquery –

0

Versuchen $(document).ready

 

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

Vielleicht läuft der Code vor dem DOM abgeschlossen ist.

Verwandte Themen