是否有可能在javascript

时间:2016-07-15 07:29:22

标签: javascript jquery undo undo-redo

是否可以获得'文字'我将重新开始撤消。例如:我有两段

Para1
Para2 <--- deleting para2 using backspace

当我执行ctrl+z或撤消时,para2将被检索回来。有什么方法可以在javascript中获得&#39; para2 &#39;将在撤消选项中返回(我想在某些js变量中得到&#39; para2&#39;我知道它会自动进入编辑器)?搜索很多,但没有得到任何解决方案。任何帮助将受到高度赞赏

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

1 个答案:

答案 0 :(得分:0)

更新2

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

  

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

撤消检索已删除的文字

删除删除文字

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

<小时/>

更新1

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

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

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

  9. 使用execCommand('copy')存储在剪贴板中。
  10. 使用window.getSelection()检索所选文本并存储在sel
  11. 使用.toString()显示撤消的文字。
  12. execCommand API用于创建文本编辑器。它有很多方法和属性。以下代码段包含bold, italics, underlineundo

     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>