2009-12-28 1 views

Antwort

13

Ja. Einige Browser beschränken sich auf 4096 und teilen längere Texte in mehrere untergeordnete Textknoten des übergeordneten Elements auf. Wenn Sie die Quelle von Apache CXF betrachten, werden Sie ein Java-Skript für den Dienst finden, um sich damit zu befassen, wenn es keinen anderen Ort gibt.

// Firefox splits large text regions into multiple Text objects (4096 chars in 
// each). Glue it back together. 
function getNodeText(node) { 
    var r = ""; 
    for (var x = 0;x < node.childNodes.length; x++) { 
     r = r + node.childNodes[x].nodeValue; 
    } 
    return r; 
} 

Siehe auch:

http://svn.apache.org/repos/asf/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js

für weitere Goodies in dieser Gegend.

+0

Haben Sie eine Liste von Broswers? Gibt es eine Möglichkeit, diese Einschränkung zu überprüfen, außer einer Broswear-Prüfung? –

+0

Nein. Jeder Browser kann sich jederzeit ändern. Die einzige sichere Sache, die uns die Ausführung von Code erlaubt, ist uns egal. – bmargulies

+0

Na ja ... was ist das \ p IE (8) übernimmt sie alle (Länge = 25858) aber Firefox nicht ... aber IE akzeptiert keine w3School Der neue loadXMLDoc xhttp = new ActiveXObject ("Microsoft.XMLHTTP") es funktionierte mit {xmlDoc = neues ActiveXObject ("Microsoft.XMLDOM"); } :( tought Nie es ein Browser Problem sein könnte ... Haben Sie etwas speziellere (Dateiname?) Bekam für Lösung im Apache aussehen? Dank für die Hinweise ... –

2

Übrigens können Sie normalize Methode verwenden, um alle zusammenhängenden TextNode in eine einzige zu verbinden, anstatt sie zu loopen, um den Text zu erhalten.

+0

Ich wusste nie, dass es eine Normalize-Methode gibt. Danke vielmals! –

Verwandte Themen