Javascript:导出浏览器';文本区域的本机撤消/重做堆栈
是否有任何方法可以导出/保存textarea浏览器的本机撤消/重做堆栈?我想能够撤销/重做所有的文本区域键入后,事实 我还想使用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_im_using').focus();
document.execCommand('undo', false, null);
但是,这导致控制台中出现NS_ERROR_FAILURE:FAILURE错误消息。你知道为什么吗
简言之,我有两个问题:
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);
};