2009-12-28 46 views

回答

13

是的。某些瀏覽器限制爲4096,並將較長的文本分割爲父元素的多個文本節點子元素。如果您查看Apache CXF的源代碼,您會發現一些實用Java腳本來處理這個問題,如果沒有其他地方的話。

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

另見:

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

在這附近更多的好東西。

+0

你有一個串列表嗎? 有沒有辦法檢查這個約束,而不是一個瀏覽器檢查? –

+0

沒有任何瀏覽器可以隨時更改。唯一安全的做法是讓我們運行不關心的代碼。 – bmargulies

+0

哦...關於什麼\ p IE(8)接受這一切(長度= 25858) 但Firefox不... 但IE不接受w3School的新loadXMLDoc xhttp =新的ActiveXObject( 「Microsoft.XMLHTTP」) 它與{xmlDoc = new ActiveXObject(「Microsoft.XMLDOM」); } :( 決不因子評分也可能是瀏覽器的問題... 你有更具體的東西(文件名?) 在Apache的解決方案去找? 感謝提示... –

2

順便說一下,您可以使用normalize方法將所有連續的TextNode合併爲一個,而不是循環它們以獲取文本。

+0

我從來不知道有一個Normalize方法。非常感謝! –