gpt4 book ai didi

javascript - 是否有可能在javascript中获取撤消文本

转载 作者:行者123 更新时间:2023-11-28 05:47:24 25 4
gpt4 key购买 nike

是否有可能获得我将在撤消时返回的“文本”。例如:我有两个段落

Para1
Para2 <--- deleting para2 using backspace

当我执行 ctrl+z 或 undo 时,para2 将被检索回来。 javascript中有什么方法可以让“para2”在撤消选项中返回(我想在某些js变量中获取“para2”。我知道它会自动出现在编辑器中)?搜索了很多但没有得到任何解决方案。任何帮助将不胜感激

P.S:我需要这个,因为我想在撤消时删除 html 中的一些属性。

最佳答案

更新2

由于OP的问题发生了变化,我将最后一次解决这个问题。

P.S: I need this because I want to remove some attributes in my html on undo.

撤消检索已删除的文本

删除删除文本

如果 html 中有大量属性,请使用文本编辑器的替换功能。您使用什么文本编辑器?


更新 1

添加了新函数getUndone()。执行以下操作来测试它:

  1. 删除一些文本。
  2. 点击按钮。
  3. 点击获取按钮。
  4. 文本的撤消部分将按预期返回。
  5. 撤消的文本也存储在变量中(即 sel)。
  6. 撤消的文本也在剪贴板中。
  7. 撤消的文本也会显示。

  8. 使用 execCommand('undo') 撤消。

  9. 使用 execCommand('copy') 存储在剪贴板中。
  10. 使用 window.getSelection() 检索选定的文本并存储在 sel 中。
  11. 使用.toString()显示未完成的文本。

execCommand API 是为了创建文本编辑器而设计的。它有大量的方法和属性。以下代码段具有粗体、斜体、下划线撤消

 document.execCommand( 'undo',false,null);

片段

<!DOCTYPE html>
<html>

<head>
<meta charset='utf-8'>
<style>
body {
font: 400 16px/1.4'serif';
}
#editor1 {
border: 3px inset grey;
height: 100px;
width: 381px;
margin: 10px auto 0;
}
fieldset {
margin: 2px auto 15px;
width: 358px;
}
button {
width: 5ex;
text-align: center;
padding: 1px 3px;
}
</style>
</head>

<body>

<div id="editor1" contenteditable="true">
The quick brown fox jumped over the lazy dog.
</div>
<fieldset>
<button class="fontStyle" onclick="document.execCommand('italic',false,null);" title="Italicize Highlighted Text"><i>I</i>
</button>
<button class="fontStyle" onclick="document.execCommand( 'bold',false,null);" title="Bold Highlighted Text"><b>B</b>
</button>
<button class="fontStyle" onclick="document.execCommand( 'underline',false,null);"><u>U</u>
</button>
<button class="fontStyle" onclick="document.execCommand( 'undo',false,null);"><b>&#10554;</b>
</button>
<button class="fontStyle" onclick="getUndone()">Get</button>
<br/>
<label for='data'>Data:
<input id="data">
</label>
</fieldset>
<script>
function getUndone() {
var data = document.getElementById('data');
var sel = window.getSelection();
document.execCommand('undo', false, null);
document.execCommand('copy', false, null);
data.value = sel.toString();

}
</script>

关于javascript - 是否有可能在javascript中获取撤消文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com