
我想把这个功能扒下来,虽然扒下来了,使用起来也正常,但是有 JS 控制台调试有报错,看了 V2EX 官方也是一样的报错。强迫症不能忍呢,但是迫于又不懂 JS,所以来求大佬指点一下。
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <script language="Javascript"> function moveEnd(t) { t.focus(), t.setSelectionRange(-1, -1) } function replyOne(t) { const e = $("#reply_content"), o = e.val(), n = "@" + t + " "; let c = ""; o.length > 0 ? o != n && (c = o + "\n" + n) : c = n, e.focus(), e.val(c), moveEnd($("#reply_content")) } </script> <a href="#;" Onclick="replyOne('V2 大佬');">@</a> <a href="#;" Onclick="replyOne('V2 大神');">@</a> <textarea name="content" maxlength="10000" class="mll" id="reply_content" style="overflow: hidden; overflow-wrap: break-word; resize: none; height: 112px;"></textarea>
Uncaught TypeError: t.setSelectionRange is not a function at moveEnd (Untitled-3.html:7) at replyOne (Untitled-3.html:12) at HTMLAnchorElement.onclick (VM80 Untitled-3.html:17) 1 phy25 2020-01-11 16:30:31 +08:00 via Android |
2 manami 2020-01-11 16:32:17 +08:00 |
3 SingeeKing PRO 所以这里顺呢 @livid 一下求修复 |
4 Livid MOD PRO |
5 Livid MOD PRO @SingeeKing @IDCFAN @Girlphobia 是我写的 bug。 最后那里 moveEnd 应该传进去的是一个 HTMLElement,但是现在代码里传了一个 jQuery object。所以如果里改成 document.getElementById() 就解决了。 已经在开发环境里验证。会在本周末部署这个修复。 |
7 Livid MOD PRO @IDCFAN 具体来说,就是把这一行: moveEnd($("#reply_content")) 改成: moveEnd(document.getElementById("reply_content")) 就不会有那个报错了。 |
9 y0bcn 2020-01-11 21:39:04 +08:00 via Android 其他平台用户发现 bug 是反馈一下,v2 用户发现 bug 想 fix 它 |
10 Livid MOD PRO @SingeeKing 这个问题的修复已经部署。再次感谢提醒。 |