相关疑难解决方法(0)

是否可以使用javascript编辑文本输入并添加到撤消堆栈?

有没有办法编辑inputtextarea使用javascript 的内容,并使用浏览器的"撤消"命令(例如ctrl-Z)可以撤消该更改?

我试图在选择的值中插入一个字符串,如"Foo {0} bar",如果用户选择了一个范围,则将所选范围插入到字符串中代替"{0} ".

例如,如果textarea包含"Example 1 2 3"并且光标位于"Example 1 | 2 3",那么该函数会将值更改为"Example 1Foo blah bar 2 3"(valueIfNothingSelected在这种情况下为"blah") .如果选择范围"1 2",则函数将改为将值更改为"示例Foo 1 2 bar 3".

在Chrome中,我测试了这个功能,并且它完成了它应该做的事情,但我无法扭转这一变化undo.

function insertTextAtCursor(text, valueIfNothingSelected) {
    var field = $('textarea[name="task_log_description"]')[0];
    var startPos = field.selectionStart;
    var endPos = field.selectionEnd;
    var processedText;
    if (startPos == endPos) {
        processedText = text.replace('{0}', valueIfNothingSelected);
        field.value = field.value.substring(0, startPos) + processedText + field.value.substring(endPos, field.value.length);
        field.selectionStart = startPos + text.indexOf('{0}');
        field.selectionEnd = field.selectionStart …
Run Code Online (Sandbox Code Playgroud)

javascript forms undo-redo

12
推荐指数
1
解决办法
2020
查看次数

输入字段上的编程值更改会被 Ctrl-Z 忽略,并且无法“撤消”-ne

当我有一个包含特定值的输入字段,并且某些 JavaScript 更改其值时,我过去可以单击该字段并按 Ctrl-Z 来恢复旧值。

好像不行了,是不是浏览器最近更新了?我做错了什么吗?有办法让它再次发挥作用吗?

setTimeout(function () {
  document.getElementById("name").value = ""
}, 2000);
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="name" value="Sylvain" />
Run Code Online (Sandbox Code Playgroud)

javascript dom undo undo-redo

7
推荐指数
0
解决办法
1425
查看次数

标签 统计

javascript ×2

undo-redo ×2

dom ×1

forms ×1

undo ×1