2013-02-18 15 views
5

Mam ciąg pochodzący z XML (którego nie mogę edytować) i chciałbym wydrukować go za pomocą alertu w javascript.Elementy html w alertach javascript?

Przykład mojego ciąg:

This is à string 

I muszę drukować wpisu:

This is à string 

istnieje dekodowania js html?

+0

Musisz pokazać mały kod demonstrujący, w jaki sposób wartości te przechodzą z XML do JS. – JAAulde

+0

Mam go z XmlReader w C# – markzzz

+0

jeśli używasz jquery to pytanie mówi, jak http://stackoverflow.com/questions/1147359/how-to-decode-html-entities-using-jquery –

Odpowiedz

12
var encoded = "This is à string"; 
var decoded = $("<div/>").html(encoded).text(); 
alert(decoded); 
+2

Co ta odpowiedź nie wspomina jest to, że pomimo tego, że pytanie nie jest oznaczone tagiem, ** potrzebujesz biblioteki jQuery, aby użyć tej odpowiedzi **. Bez jQuery powitamy Cię pięknym błędem DOMException. –

8

można umieścić napis w elemencie DOM i czytać go ponownie, nawet bez jQuery: https://stackoverflow.com/a/3700369/1986499

Edycja niedawnym żądać umieszczenia kodu z innego SO odpowiedzieć:

var div = document.createElement('div'); 
div.innerHTML = encoded; 
var decoded = div.firstChild.nodeValue; 
+3

To prawda, [tutaj jest skrzypce] (http://jsfiddle.net/gaBeb/). –

+1

To, że pytanie jest duplikatem, nie oznacza, że ​​powinieneś opublikować odpowiedź z linkiem. – TobiMcNamobi

0

Jestem po prostu nieco późno , ale na wszelki wypadek, gdy ktoś inny znajdzie to za pośrednictwem Google (tak jak ja), pomyślałem, że poprawi się po Imperative 's answer.

function showbullet() { 
    var tempelement = document.createElement('div'); 
    tempelement.innerHTML = "&bull;"; 
    alert("Here, have a bullet!\n" + tempelement.innerHTML); 
} 
showbullet(); 

Testowałem to i potwierdziłem, że działa w Chrome/43.0.2357.130 m; Firefox/32.0.1; Internet Explorer/9.0.8112.16421. Nie ma potrzeby robienia niczego przy pomocy nodeValue, a co nie; obiekt zostanie zastąpiony jego powiązanym charakterem, gdy tylko zadanie zostanie zakończone. (Zauważ jednak, że wykonanie alert(tempelement.innerHTML="&bull;"); nie działa w żadnej z przeglądanych przeze mnie przeglądarek!)