相关疑难解决方法(0)

如何检测Safari,Chrome,IE,Firefox和Opera浏览器?

我有FF,Chrome,IE,Opera和Safari的5个插件/扩展.

如何识别用户浏览器并重定向(单击安装按钮后)以下载相应的插件?

javascript browser-detection

738
推荐指数
17
解决办法
78万
查看次数

如何在设置值后在HTML textarea中进行撤消工作?

我有一个<textarea>元素,我听从某些按键.就像用户键入Tab键一样,我会阻止更改焦点的默认操作,并将制表符添加到正确的位置.

问题是当用户按下我收听的其中一个键时,撤消会变得有点乱.如何使撤消/重做功能起作用?我想要听ctrl/cmd-z和ctrl/cmd-shift-z按键,记录所有内容,并处理undos/redos,但编辑和上下文菜单选项不起作用......

您可以通过键入带有选项卡的字母进入,然后输入然后尝试撤消和重做:

const textarea = document.querySelector('textarea')
textarea.addEventListener('keydown', function (event) {
  if (event.key == "Tab") {
    event.preventDefault()
    const cursor = textarea.selectionStart
    textarea.value = textarea.value.slice(0, cursor) + '\t' + textarea.value.slice(textarea.selectionEnd)
    textarea.selectionStart = textarea.selectionEnd = cursor + 1
  } else if (event.key == "Enter") {
    event.preventDefault()
    const cursor = textarea.selectionStart
    textarea.value = textarea.value.slice(0, cursor) + '\n' + textarea.value.slice(textarea.selectionEnd)
    textarea.selectionStart = textarea.selectionEnd = cursor + 1
  }
})
Run Code Online (Sandbox Code Playgroud)
<textarea cols="50" rows="20"></textarea>
Run Code Online (Sandbox Code Playgroud)

html javascript html5 textarea preventdefault

11
推荐指数
1
解决办法
1426
查看次数