我想把这个功能扒下来,虽然扒下来了,使用起来也正常,但是有 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 1
|
2
manami 2020-01-11 16:32:17 +08:00 1
|
3
SingeeKing 2020-01-11 16:36:07 +08:00 2
所以这里顺呢 @livid 一下求修复
|
4
Livid MOD |
5
Livid MOD @SingeeKing @IDCFAN @Girlphobia
是我写的 bug。 最后那里 moveEnd 应该传进去的是一个 HTMLElement,但是现在代码里传了一个 jQuery object。所以如果那里改成 document.getElementById() 就解决了。 已经在开发环境里验证。会在本周末部署这个修复。 |
7
Livid MOD @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 @SingeeKing 这个问题的修复已经部署。再次感谢提醒。
|