rangy undoToRange删除范围,即使属性已更改

时间:2018-02-27 14:53:31

标签: javascript rangy

我正在使用rangy class applier。 https://github.com/timdown/rangy

applyToRange创建一个范围,undoToRange按预期删除它。

但是,如果我修改了span的一个属性,那么undoToRange不会删除span(虽然它确实删除了类)。如何使用rangy(而不是自定义解决方案)删除跨度?



.myclass {
    background-color: rgba(255, 255, 0, 1);
}

<h1>Hello world</h1>
<button onclick="apply()">apply</button>
<button onclick="undo()">undo</button>

<script src="https://cdnjs.cloudflare.com/ajax/libs/rangy/1.3.0/rangy-core.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rangy/1.3.0/rangy-classapplier.js"></script>

<script>
node = document.getElementsByTagName("h1")[0]

rangy.init();

rangyOptions = {
  elementAttributes: { 'data-name': 'hello'},
  useExistingElements: false,
};
applier = rangy.createClassApplier("myclass", rangyOptions);
var range = rangy.createRange();
range.selectNode(node);

function apply() {
  applier.applyToRange(range);
  // if a comment this, then undoToRange does remove the span.
  node.getElementsByTagName("span")[0].dataset.name = "world";
}

function undo() {
  applier.undoToRange(range);
}

</script>
&#13;
&#13;
&#13;

0 个答案:

没有答案