我正在爲Google Chrome編寫一個應用程序(目標受衆是一個內部團隊),它允許用戶從iframe中操作元素。用戶可以使用鼠標來選擇DOM元素並對它們執行各種操作,例如更改顏色,字體等。IndexedDB在添加包含元素引用的對象時失敗
我正在使用nodeIterator
方法僅選擇具有ID或類名稱的元素。然後,對於這些元素中的每一個,我將一些元素特定的屬性添加到一個對象,並將該對象推送到一個數組。然後,我打開一個IndexedDB數據庫並將數組中的每個對象添加到數據庫中。
我的問題是這樣的:一切正常,只要我不包含對象中元素的引用。
// Works fine
array.push({
width : currentNode.offsetWidth,
height : currentNode.offsetHeight,
top : currentNode.style.top;
left : currentNode.style.left;
});
// Doesn't work
array.push({
elem : currentNode,
width : currentNode.offsetWidth,
height : currentNode.offsetHeight,
top : currentNode.style.top;
left : currentNode.style.left;
});
嘗試將第一個元素添加到IndexedDB存儲區後,Google chrome會自動失敗(控制檯中沒有任何內容)。
我的問題是:有沒有其他人經歷過這種行爲,這是一個瀏覽器特定的錯誤?
明天我將把代碼提煉成JSfiddle。提前致謝。
感謝您的回覆。你對我如何傳遞元素的引用有任何想法嗎? –
由於潛在的內存泄漏,我寧願避免引用指向元素的指針。如Kristof指出的那樣,最好的選擇是ID,如果你能夠獨一無二地生成。第二好的是NAME屬性,但我不知道如何以x-browser方式有效地檢索。所以看來人們正在使用CLASS名稱。 –