在contenteditable div中插入由尖括号括起来的文字?

时间:2016-06-08 20:23:35

标签: html css contenteditable

我有一个内容可编辑的div,这是我的搜索框。我需要在C中添加堆栈跟踪,其中包含由大括号包围的内存地址。当我在搜索框中插入此文本时,它被视为html标记。我该怎样避免这种情况?

我在div中粘贴的内容示例:

[<ffffffff810733ff>] do_exit+0x15f/0x870
[<ffffffff8109dc25>] ? sched_clock_local+0x25/0x90
[<ffffffff81088792>] ? __dequeue_signal+0x102/0x200
[<ffffffff81073b68>] do_group_exit+0x58/0xd0

粘贴后的div元素。

<div id="searchBox" 
contenteditable="true">do_exit+0x15f/0x870[<ffffffff8109dc25>] ?
sched_clock_local+0x25/0x90[<ffffffff81088792>] ?
__dequeue_signal+0x102/0x200[<ffffffff81073b68>] do_group_exit+0x58/0xd0
</div>

2 个答案:

答案 0 :(得分:2)

有些浏览器支持contenteditable="plaintext-only",这可以解决您的问题。但是,不支持此功能的浏览器甚至可能无法使div满足。

示例:

<div contenteditable="plaintext-only"></div>

此问题的更好解决方案可能是使用原生<input><textarea> - 那些应该为您处理此问题。

答案 1 :(得分:2)

属性contenteditable +非正式值"plaintext-only"已经回答。

如果您复制/粘贴这些,括号将变为html实体。

如果这已经存在于您的代码中,那么您应该在服务器端对此进行处理。

无论如何这里是一个额外的选项,如果你仍想在这些代码周围使用html标签,你可以尝试使用旧标签<xmp>

关于它的说法是什么:https://www.w3.org/wiki/HTML/Elements/xmp ......自己使用。

<div id="searchBox" 
contenteditable="true"><xmp>do_exit+0x15f/0x870[<ffffffff8109dc25>] ?
sched_clock_local+0x25/0x90[<ffffffff81088792>] ?
__dequeue_signal+0x102/0x200[<ffffffff81073b68>] do_group_exit+0x58/0xd0
  </xmp></div>

正确的方法是:(在发送到浏览器或保存之前使用htmlentities()或类似方法处理括号。)

[contenteditable] {
  white-space:pre;
  }
<div contenteditable="true">do_exit+0x15f/0x870[&lt;ffffffff8109dc25&gt;] ?
  sched_clock_local+0x25/0x90[&lt;ffffffff81088792&gt;] ? 
  __dequeue_signal+0x102/0x200[ffffffff81073b68&gt;] do_group_exit+0x58/0xd0</div>