2009-12-28 39 views

Trả lời

13

Có. Một số trình duyệt giới hạn ở 4096 và chia các văn bản dài hơn thành nhiều nút con văn bản của phần tử gốc. Nếu bạn nhìn vào nguồn của Apache CXF, bạn sẽ tìm thấy một số kịch bản Java tiện ích để giải quyết vấn đề này, nếu không có nơi nào khác.

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

Xem thêm:

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

cho goodies nhiều quanh khu vực này.

+0

Bạn có danh sách các broswers không? Có cách nào để kiểm tra ràng buộc này khác sau đó kiểm tra séc không? –

+0

Không. Bất kỳ trình duyệt nào cũng có thể thay đổi bất cứ lúc nào. Điều an toàn duy nhất để chúng tôi chạy mã không quan tâm. – bmargulies

+0

Ồ, ... điều gì về điều đó \ p IE (8) chấp nhận tất cả (length = 25858) nhưng Firefox không ... nhưng IE không chấp nhận tải mới của W3SchoolXMLDoc xhttp = new ActiveXObject ("Microsoft.XMLHTTP") nó hoạt động với {xmlDoc = new ActiveXObject ("Microsoft.XMLDOM"); } :( Never tought nó có thể là một vấn đề trình duyệt ... Bạn đã nhận được một cái gì đó cụ thể hơn (filename?) cần tìm kiếm trong các giải pháp Apache? cảm ơn cho những gợi ý ... –

2

bằng cách này, bạn có thể sử dụng phương pháp normalize để nối tất cả các TextNode liền kề vào một thay vì lặp chúng để lấy văn bản.

+0

Tôi không bao giờ biết có một phương pháp Normalize. Cảm ơn nhiều! –

Các vấn đề liên quan