2009-12-28 12 views

cevap

13

Evet. Bazı tarayıcılar 4096 ile sınırlıdır ve daha uzun metinleri ana öğenin birden çok metin düğümü çocuğuna ayırır. Eğer kaynağa Apache CXF'ye bakarsanız, başka bir yer yoksa, bununla başa çıkmak için birtakım Java betiği bulacaksınız.

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

Ayrıca bakınız:

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

bu mahallede daha güzellikler için.

+0

Burçlar listesi var mı? Bu kısıtlamayı başka bir kontrol için kontrol etmenin bir yolu var mı? –

+0

Hayır. İstediğiniz zaman herhangi bir tarayıcı değişebilir. Umursamaz kod çalıştırmak için bize tek güvenli şey. – bmargulies

+0

Oh iyi ... \ p IE (8) hepsini kabul ettiğini ne hakkında (uzunluk = 25858) ama Firefox ... ama IE W3School yeni loadXMLDoc xhttp = new ActiveXObject kabul etmez etmez ("Microsoft.XMLHTTP") , {xmlDoc = new ActiveXObject ("Microsoft.XMLDOM") ile çalıştı; } :( bir tarayıcı sorun olabilir tought asla ... daha spesifik bir şey (dosya adı?) Apache çözeltide aramaya var mı? ... –

2

Bu arada, metni elde etmek için tüm bitişik TextNode'ları bir araya getirmek yerine normalize yöntemini kullanabilirsiniz.

+0

Normalize yöntemi olduğunu hiç bilmiyordum. Çok teşekkürler! –