关于如何实现textarea接受Tab键输入

在默认情况下,网页上的Tab键用于切换控件焦点。要让textarea接受Tab键输入,可以监听textarea的onkeydown事件,捕获Tab键(键码9),并插入 或空格。需要注意在处理完事件后恢复焦点,且页面需有两个以上控件以防止焦点丢失。这个解决方案适用于markdown到HTML转换的场景,例如使用marked库。
摘要由CSDN通过智能技术生成

实现textarea接受Tab键的输入

首先我们需要知道,在一般情况下网页上按Tab键是切换控件焦点的。在textarea里也是这样,那么当我们需要在文本框里输入Tab的时候,应该怎么办呢?

首先我们想到直接看一下 textarea 标签是否有控制Tab的属性
没得,好了,下一个。

我的解决方案:

我们可以通过textarea对象捕捉键盘事件,过滤Tab键,然后悄悄把他的处理方式从切换焦点改成插入文本\t(或者4个或8个空格)不就ok了。相当简单。
ps:键盘上的Tab对应码是9。

然后开始行动:
直接给代码吧,有点懒了(很简单)。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>md转换为html</title>

</head>

<body>
      <script src="https://cdn.bootcss.com/marked/0.8.0/marked.js"></script>
      <link href="http://cdn.bootcss.com/highlight.js/8.0/styles/monokai_sublime.min.css" rel="stylesheet">
      <script src="http://cdn.bootcss.com/highlight.js/8.0/highlight.min.js"></script>
      <script>hljs.initHighlightingOnLoad();</script>
      <script type="text/javascript">
        var rendererMD = new marked.Renderer();
        marked.setOptions({
   
          renderer: rendererMD,
          gfm: true,
          tables: true,
          breaks: false,
          pedantic: false,
          sanitize: false,
          smartLists: true,
          smartypants: false
        });
        marked.setOptions({
   
        highlight: function (code) {
   
        return hljs.highlightAuto(code).value;
      }
    });



        function insertText
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值