2012-09-18 53 views
2

如何使用javascript獲取以字節爲單位的HTML元素的大小?以字節爲單位的HTML元素大小Javascript

我有一個代表的談話

<ul> 
    <li>hello</li> 
    <li>how are you?</li> 
    <li>fine thanks</li> 
    <li>nice to meet you</li> 
    <li>nice to mmet you too</li> 
</ul> 

名單,我想保存的談話到本地存儲,但localStorage的上限爲5MB的鉻,所以我需要知道的字節大小的列表做一些驗證。

+0

http://stackoverflow.com/questions/3027142/calculating-usage-of-localstorage-space on計算localStorage空間的使用情況 – Mifeng

回答

4

如果您正試圖將元素轉換爲HTML,那麼你可以給<ul>一個ID,然後使用

var el = document.getElementById("convo"); 
var html = el.innerHTML; 
window.alert(html.length); 

或者,是否會有很多的標記,你只想獲取文本,你可以遍歷li元素並提取文本並將其放入數組中。 JSON.stringify結果並獲得其長度。

編輯:

JavaScript使用UCS-2UTF-16內部,這兩者都是16位編碼。假設拉丁文,<string>.length *2應該是一個相當準確的估計。

+0

長度本身可能不足以準確獲取字節數,因爲它取決於編碼以及。 – Mahn

+0

@Mahn - 鑑於Javascript在內部使用'UCS-2'或'UTF-16',我會解決'.localStorage'使用相同編碼的[沒有根據,但很好的猜測]。雖然它可能只有幾個字節,但' .length * 2'是一個很好的估計。 –

+1

確實,你沒有考慮你的原始答案中的16位,因此評論:) – Mahn

相關問題