2012-01-26 24 views
2

讓我們假設我讀了文本節點的,像這樣的內容:如何統計文本節點中有多少個字符實際顯示在網頁上?

s = current_node.getSelection().anchorNode.nodeValue; 

什麼是算多少字符顯示在網頁上,由於這一個節點的最佳方式?我知道例如 將顯示爲一個文字字符串,因此不需要查找這些字符串。那麼我需要做的就是將一排中的幾個空格作爲一個字符來計算嗎?還有什麼我需要注意的嗎?

回答

3

你可以向瀏覽器的什麼在這樣的節點文本版本:

var node = current_node.getSelection().anchorNode; 
var text = node.textContent || node.innerText; 
var length = text.length; 

這將已經轉換實體到他們的常規字符,並且不包含任何HTML標記。多個空間會出現多個空間 - 這就是瀏覽器中這個功能的作用。如果你是相當肯定,有沒有多的HTML  序列,你可能崩潰的多個空格這樣的:

var node = current_node.getSelection().anchorNode; 
var text = node.textContent || node.innerText; 
text = text.replace(/ +/g, " "); 
var length = text.length; 

這裏舉例:http://jsfiddle.net/jfriend00/FpsGq/

+0

...'text.length' – Ben

0

這取決於您是如何字面上定義「顯示在網頁上」。如果字符溢出容器溢出:隱藏,它們將不會顯示在網頁上(由於它們被CSS規則隱藏)。

除此之外,凝結了一系列的空格,忽略逃脫換行符和回車(如果適用,像<預> < /預>)和冷凝轉義字符應該是你所需要的。至少我不能想到其他邊緣情況。

相關問題