如何用javascript撤销操作HTML DOM元素
How to undoably manipulate HTML DOM elements with javascript?
假设我有一个处于contenteditable模式的元素,并且我不想对DOM进行一些操作,同时使更改不可撤销。我尝试了一般的createNode, appendChild, removeChild, setAttribute,但他们似乎不能撤销…
是否有一种方法可以使这些操作不可做?以及如何?
不要将整个元素设置为可被满足的,而是将该元素的每个子元素设置为可被满足的,例如:
<div id = 'main' >
<div id = 'child1' ></div>
<div id = 'child2' ></div>
</div>
这里你应该把child1和chil2设置为可被满足的,这样它们就会留在下面,你可以把元素附加到main中而不用担心它们会被删除。
将旧值存储在一个变量中,使您能够通过恢复该值来"撤消"。
您可以通过将列id和旧值以json字符串的形式保存在cookie/localstorage中来保持不可撤销状态。
humm....要做到这一点,我的意思是,我认为最好的方法是有一个函数来关注用户输入,用户输入的内容存储在一个对象中,删除的单词存储在另一个对象或数组中,然后如果用户按ctrl+z,那么另一个函数来查找最后一个退行单词并将其添加到现有文本中。这样做似乎很复杂。
<textarea id="div" contenteditable="true" >
</textarea>
<p id="p">dd </p>
css: #div {
width:300px;
height:260px;
border:2px solid #ff9000;
}
jsvascript:
var div = document.getElementById("div");
div.onkeypress = function(evt){
var words = [];
evt = evt.keyCode;
var event = String.fromCharCode(evt);
// alert(event);
words.push(event);
}
我将添加更多…这个
相关文章:
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 通过Java加载XML并制作HTML DOM的一部分
- 以非像素为单位获取HTML DOM元素的CSS高度,在我的例子中是英寸
- HTML DOM Text() nodes
- 递归单步执行 HTML DOM 并打印属性
- 从自身获取对脚本作为 HTML DOM 元素的引用
- 我可以将 HTML 字符串分配给 HTML DOM 节点的内部 HTML 属性吗?
- Javascript HTML DOM select
- 如何反转 JavaScript 变量中 HTML DOM 元素的顺序
- 在 HTML DOM 元素下添加 javascript 文件或 css 文件
- HTML DOM - element.appendChild() 的行为不像我期望的那样
- HTML DOM 使用 AngularJS ng-if 函数
- PHP 简单 HTML DOM 和下拉元素已选选项
- 将 HTML DOM 保存到服务器上的文件
- 为什么我的 HTML 按钮刷新页面?/为什么我不能让我的新 HTML DOM 元素插入到我的页面中
- 节点上的 d3 事件处理程序不在 HTML DOM 中
- 如何转换 HTML DOM 结构
- HTML/DOM:鼠标事件更改按钮
- HTML DOM alerting style.width