IDCFAN
V2EX  ›  反馈

V2EX 的点击在 textarea 里填入 [@用户名] 的功能,控制台报错,有大佬知道什么原因呢?

  •  
  •   IDCFAN · Jan 11, 2020 · 4212 views
    This topic created in 2492 days ago, the information mentioned may be changed or developed.

    我想把这个功能扒下来,虽然扒下来了,使用起来也正常,但是有 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)
    
    10 replies  •  2020-01-12 06:44:00 +08:00
    SingeeKing
    SingeeKing
    Jan 11, 2020❤️2
    3
    所以这里顺呢 @livid 一下求修复
    Livid
    Livid
    MOD
    PRO
    Jan 11, 2020
    4
    @SingeeKing 感谢反馈。会在本周末内解决。

    cc @Girlphobia
    Livid
    Livid
    MOD
    PRO
    Jan 11, 2020❤️1
    5
    @SingeeKing @IDCFAN @Girlphobia

    是我写的 bug。

    最后那里 moveEnd 应该传进去的是一个 HTMLElement,但是现在代码里传了一个 jQuery object。所以如果那里改成 document.getElementById() 就解决了。

    已经在开发环境里验证。会在本周末部署这个修复。
    IDCFAN
    IDCFAN
    OP
    Jan 11, 2020
    6
    @Livid 好的,周末后再来扒。
    Livid
    Livid
    MOD
    PRO
    Jan 11, 2020
    7
    @IDCFAN 具体来说,就是把这一行:

    moveEnd($("#reply_content"))

    改成:

    moveEnd(document.getElementById("reply_content"))

    就不会有那个报错了。
    IDCFAN
    IDCFAN
    OP
    Jan 11, 2020
    8
    @Livid 哈哈,伸手党特此谢过,今天就能用上了。
    devzhi
    devzhi
    Jan 11, 2020 via Android
    9
    其他平台用户发现 bug 是反馈一下,v2 用户发现 bug 想 fix 它😂
    Livid
    Livid
    MOD
    PRO
    Jan 12, 2020
    10
    @SingeeKing 这个问题的修复已经部署。再次感谢提醒。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   673 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 20:06 · PVG 04:06 · LAX 12:06 · JFK 15:06
    ♥ Do have faith in what you're doing.