2009-12-28 34 views

Respuesta

13

Sí. Algunos navegadores limitan a 4096 y dividen textos más largos en múltiples elementos secundarios de nodo de texto del elemento principal. Si miras la fuente a Apache CXF, encontrarás algún script Java de utilidad para manejar esto, si no en otro lugar.

// 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; 
} 

Véase también:

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

para más valiosos en este barrio.

+0

¿Tiene una lista de broswers? ¿Hay alguna manera de verificar esta restricción, a excepción de una verificación de verificación doble? –

+0

No. Cualquier navegador puede cambiar en cualquier momento. Lo único seguro que nos puede hacer para ejecutar código que no le importa. – bmargulies

+0

Oh, bueno ... ¿qué hay que \ p IE (8) acepta todo (longitud = 25858) pero Firefox no ... pero IE no acepta nueva loadXMLDoc de w3school xhttp = new ActiveXObject ("Microsoft.XMLHTTP") funcionaba con {xmlDoc = new ActiveXObject ("Microsoft.XMLDOM"); } :( Nunca enseñó que podría ser un problema del navegador ... ¿Tienes algo más específico (nombre?) buscar en la solución de Apache? gracias por los consejos ... –

2

por cierto, puede usar el método normalize para unir todos los TextNode contiguos en uno en lugar de ponerlos en bucle para obtener el texto.

+0

Nunca supe que había un método Normalize. ¡Muchas gracias! –

Cuestiones relacionadas