我正在为 Google Chrome 编写一个应用程序(目标受众是一个内部团队),它允许用户从 iframe 中操作元素。用户可以使用鼠标选择 DOM 元素并对它们执行各种操作,例如更改颜色、字体等。
我正在使用一种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 存储后静默失败(控制台中没有任何内容)。
我的问题是:有没有其他人经历过这种行为,这是特定于浏览器的错误吗?
明天我将把我的代码提炼到 JSfiddle。提前致谢。