【问题标题】:Detect Word Entered in ContentEditable div检测在 ContentEditable div 中输入的单词
【发布时间】:2013-03-15 10:20:09
【问题描述】:

我有一个要求,我需要获取在 contenteditable div 中输入的单词。

每当我输入一个单词并点击空格时,我都想知道输入了什么单词。单词可以在末尾或中间的任何地方输入。

【问题讨论】:

    标签: java javascript gwt contenteditable jsni


    【解决方案1】:

    如果您使用的是 javascript,那么这个堆栈溢出链接很有用:

    get the text content from a contenteditable div through javascript

    【讨论】:

    • 对于我的用例,我有一个事件'wordentered'。当用户点击空格或回车时触发此事件。此事件需要输入的单词。那么如何获取用户按空格或回车时输入的单词呢?
    • 我有 2 个疑问 1.您的意思是说当您在 contenteditable div 中按 enter/space 时,它​​们被视为输入的一部分,因此事件不会被触发? 2.这个问题是特定于浏览器的吗?
    • 1.不,触发事件没有问题。当空格/输入被击中时,该事件被触发。我的要求是当用户点击空格/输入时,我想要他在点击空格/输入之前输入的单词。如何获取用户输入的单词。我不想要 contenteditable div 的完整文本值,但是当用户绑定并点击空格/输入时,我想检测他在遇到的每个空格/输入上输入的单词。这个词最终将传递给事件,但在此之前我想要用户在点击空格/输入时输入的词。 2. 不,它不是特定于浏览器的。
    • 所以你的意思是说你想在回车之前立即检索最后一个单词?试试下面的链接:stackoverflow.com/questions/12917750/…
    • 是的,但如果它是最后一个单词,则此方法有效。已经输入但不在末尾的单词怎么办?假设您在文本中间输入。
    【解决方案2】:

    在 GWT 中,我相信 contentEditable div 指的是 TextboxNumberboxRichTextArea。 (如果还有其他人,请告诉我)。

    解决方案看起来相当简单。

    您可以轻松覆盖上述每个小部件的onBrowseEvent()。一旦击键与space or Enter 匹配,就从 div 中获取值并将其存储在current value or any other string 中。维护一个previous value 字符串并与之比较。一旦你遇到字符串中的第一个变化,你就会得到你正在寻找的词。

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      您可以使用 on keyUp 事件来检查空间,而不是使用 diff 算法来检查所做的更改。 请参阅谷歌的“javascript diff”算法 - 你会群众....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-28
        • 1970-01-01
        • 2017-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多