【问题标题】:javascript - Why do I get a   if I script  ?javascript - 如果我编写脚本,为什么我会得到一个?
【发布时间】:2018-03-16 09:41:26
【问题描述】:

我很难在 </span> 的末尾插入一个空格 document.execCommand()

document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>");

这背后的原因是我希望光标在插入后位于&lt;span&gt; 之外。

这是一个简单的 jsFiddle 向您展示我的意思: jsFiddle 在该示例中,如果您单击图像然后写一些东西,则文本将为绿色。这意味着文本仍在范围内。

所以我想要的是在&lt;/span&gt; 之后插入一个普通空格。

我已经尝试过的:

  • '&lt;/span&gt; ' 这样的空间 -> 我在 Chrome 中没有空间。
  • 这样的空间 '&lt;/span&gt;&amp;#32;' -> 我在 Chrome 中得到 &lt;/span&gt;&amp;nbsp;

所以我的问题是如何添加一个空格以获得与 '&lt;/span&gt;&amp;#32;''&lt;/span&gt; ' 等效的结果 而不是 '&lt;/span&gt;&amp;nbsp;'

我从检查员那里得到什么:https://ibb.co/cqCW2x

如果我这样做:

document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>&#32;");

【问题讨论】:

    标签: javascript cursor whitespace space execcommand


    【解决方案1】:

    也许您可以使用零宽度不换行符(不可见字符):\uFEFF

    此解决方案的优点是它不会在跨度之后创建(也许?)不需要的可见空间

    function Test() {
    document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>\uFEFF");
    }
    #textBox {
    	width: 540px;
    	height: 200px;
    	border: 1px #000000 solid;
    	padding: 0;
    	overflow: scroll;
    }
    .own-class2 {color:green;}
    <div id="toolBar">		
    	<button height="20px" onclick="Test()" >insert a span</button>
    </div>
    <div id="textBox" class="textbox" contenteditable="true"></div>

    【讨论】:

    • @Morse 我的荣幸 :) 不要忘记标记您的问题已解决,以帮助其他人
    • 当然。我仍然需要等待 5 分钟,但我保持打开该选项卡以单击它...再次感谢这是一个真正的问题..
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2021-06-16
    • 2014-04-10
    • 2019-02-05
    相关资源
    最近更新 更多