如何在剪切/粘贴/移动后在contentEditable DIV中保留与XML相关的数据
How to preserve data associated with XML inside contentEditable DIV after cut/paste/move
我想要一个contentEditablediv,它将包含用户输入的XML。我该如何在每个节点上存储一组隐藏的数据,这些数据即使在剪切/粘贴(即移动)后也会持续存在?
我尝试过在XML中嵌套一个隐藏元素,假设在剪切/粘贴过程中浏览器会移动该元素,但它会被删除。
可以选择为每个节点生成一个索引/哈希作为属性,并将其与内存中的对象相关联,但出于可用性原因,我希望避免这种情况。
这样做的目的是精简XML,使其更具可读性,而不是拥有大量属性。
很明显,我没有做足够的测试。似乎只要给元素至少一个属性,并且不使用display:none
,剪切/粘贴就可以工作。现在,我可以在每个节点中有一个空的<span>
元素,它可以在一个属性中存储一个散列,用于将节点与内存中的对象相关联。
使用$('span').data()
添加到该元素的数据在剪切和粘贴后不会持久存在,但这是意料之中的,因为浏览器此时显然会创建一个新元素。
但是,我遇到了另一个问题。在节点中使用退格/删除有时会删除元素,这并不理想。我通过将元素绝对定位在页面之外来解决这个问题。实际上,它现在的行为相当直观。如果删除了包装该元素的XML,则该元素将被删除,但在其他情况下,该元素将持续存在。
注意,我只在Chrome(21)中测试过这个,所以我不知道它能与其他浏览器一起使用。如果有人可以分享一个更优雅的解决方案,请这样做。
相关文章:
- 分派点击事件并保留击键修饰符
- 我应该如何从xml文件构建一个javascript页面
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 提交后保留下拉选择的值
- 将XML转换为普通的旧JavaScript对象
- 刷新后保留对网页的更改
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- jQuery AJAX write to XML
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 如何将childNodes用于XML文档
- 使用递归属性迭代保留属性结构
- Jquery html() 和保留元素名称
- 如何将字符串拆分为字符,但在javascript中保留空格
- 离开页面导航后保留文本区域内容
- 在javascript中的xml中创建一个链接
- JSON到XML的转换
- SVG xml to image
- 如何在剪切/粘贴/移动后在contentEditable DIV中保留与XML相关的数据
- Excel转换为XML:将小数四舍五入到最接近的百分位,并保留超链接