1

我正在使用具有 contentEditable 属性的 div 来满足我作为扩展文本字段的简单、跨浏览器解决方案的需求,但我遇到了一个有趣的问题。

这是 div :

<div id="expanderInput" class="inputDiv" contentEditable></div>

这是我在 jquery 中抓取它的地方:

var forwardsTo = $expanderInput.html();

在大多数情况下,这会返回用户在 div 中输入的任何内容,但是当他们开始在 div 中粘贴内容时会发生奇怪的事情。

例如,当您从 Word 粘贴时,它会在浏览器中正确显示文本,但会在 div 中添加额外的 html 代码。当我从 word 中粘贴诸如“bob@aol.com”之类的电子邮件地址时,这是它真正插入到 html 中的代码:

<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>bob@aol.com<o:p></o:p></p>

这在尝试获取用户粘贴的简单文本时会产生问题,因为它还会抓取 html 代码,从而难以正确解析。

有没有办法限制用户可以粘贴到 div 中的内容?或者只是让它只能插入简单的文本?

4

1 回答 1

2

.text()唯一的怎么样?

var forwardsTo = $expanderInput.text();

这不是一个完美的解决方案,因为您的用户认为他可能会粘贴粗体/斜体文本并在提交后发现该标记已被剥离。也许你可以申请

$expanderInput.text($expanderInput.text());

在每次粘贴事件时。这将立即剥离标记。

于 2010-08-16T21:36:52.557 回答