Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:导出浏览器';文本区域的本机撤消/重做堆栈_Javascript_Html_Firefox_Browser_Undo - Fatal编程技术网

Javascript:导出浏览器';文本区域的本机撤消/重做堆栈

Javascript:导出浏览器';文本区域的本机撤消/重做堆栈,javascript,html,firefox,browser,undo,Javascript,Html,Firefox,Browser,Undo,是否有任何方法可以导出/保存textarea浏览器的本机撤消/重做堆栈?我想能够撤销/重做所有的文本区域键入后,事实 我还想使用javascript调用本机撤销/重做堆栈,这可以通过以下方式轻松完成: $('#textarea_im_using').focus(); document.execCommand('undo', false, null); 但是,这导致控制台中出现NS_ERROR_FAILURE:FAILURE错误消息。你知道为什么吗 简言之,我有两个问题: 导出本机浏览器的撤消

是否有任何方法可以导出/保存textarea浏览器的本机撤消/重做堆栈?我想能够撤销/重做所有的文本区域键入后,事实

我还想使用javascript调用本机撤销/重做堆栈,这可以通过以下方式轻松完成:

$('#textarea_im_using').focus();
document.execCommand('undo', false, null); 
但是,这导致控制台中出现NS_ERROR_FAILURE:FAILURE错误消息。你知道为什么吗

简言之,我有两个问题:

  • 导出本机浏览器的撤消堆栈
  • 调用本机浏览器的撤消方法
  • 我目前正在使用Mozilla Firefox(最新版本)。我很乐意尝试任何可用的浏览器(Safari除外)。

    execCommand
    ,它与文档设计模式或
    contentEditable
    元素相关,而不是像
    textarea
    这样的表单字段

    改用
    contentEditable
    div
    可以让您完成您想要完成的任务。当然,在支持它的浏览器上,它可以让您通过编程触发
    undo
    操作,我相信您对
    contentEditable
    div
    的控制比对
    textarea
    的控制要多得多

    :

    HTML:

    JavaScript:

    var editor = document.getElementById("editor");
    var buttonUndo = document.getElementById("buttonUndo");
    editor.contentEditable = true;
    buttonUndo.onclick = function() {
      document.execCommand("undo", false, null);
    };
    

    (在那里使用了
    onclick
    ,因为IE8支持这种东西,我不想玩
    addEventListener
    /
    attachEvent
    游戏…

    execCommand
    contentEditable
    元素相关,而不是
    textarea
    元素。是否需要使用
    textarea
    ?或者您可以使用
    contentEditable
    div
    来代替吗?我需要能够重播编程代码的键入。我担心使用contentEditable div,因为所有的选项卡和间距问题。现在查看内容可编辑的div(对它们没有经验)。看起来处理间距很好。谢谢T.J.我已经做了更改,现在错误被删除了!接得好。你知道第二个问题->如何导出/保存浏览器撤消/重做堆栈吗?@cgn:我不知道。不过我想你不能。我认为这方面没有任何标准。
    #editor {
      border: 1px solid black;
      min-height: 2em;
    }
    
    var editor = document.getElementById("editor");
    var buttonUndo = document.getElementById("buttonUndo");
    editor.contentEditable = true;
    buttonUndo.onclick = function() {
      document.execCommand("undo", false, null);
    };