我正在 try catch 对文本区域的更改并破译对文本所做的更改。
我这样做是为了在某种程度上复制“可标记”编辑器的行为,例如 Facebook 上的编辑器——您可以在其中“标记”您的 friend 或公共(public)页面。
我的计划是跟踪字符串输入中“标记词”的索引(一些对象包含有关“标记词”位置的数据)。因此,这意味着每当将单词/短语键入/粘贴到文本区域时,我想确切地知道文本中发生了什么变化以更新“标记词”的索引。
我遇到了一个似乎符合我需要的事件:
textAreaEl.bind("输入", function (e) {});
要继续进行此操作,我希望能够从“e”对象中找出文本中究竟发生了什么变化以触发此事件。
有没有办法破译此事件触发前后文本实际发生了什么?我试了一下,但空空如也。 (例如,在我从键盘输入内容后,它甚至是未定义的)。
此外,是否有更好的方法来跟踪较大字符串中的字符串?
最佳答案
您可以使用 string.indexOf()
找到一个字符串在另一个字符串中的位置(索引为 0)。
要查找文本区域或输入的完整文本输入,请使用 element.value
。
要检测文本区域何时被修改,您可以使用 addEventListener
。
如果您想通过更改内容的颜色等来修改文本区域的内容,那将更加困难,我什至建议使用带有 contenteditable
的 div
元素相反。
一些引用资料:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
编辑:更慢地阅读您的问题,看起来您正在做的是您正在尝试查看是否可以检测到所做的更改。然而,这样做的目的似乎是您想查看添加了哪些标签,因此这成为一个 x/y 误解。
您不需要确切地检查所做的更改,您需要做的就是在每次按下新键时再次检查输入(或者甚至只检查 #
键) .不需要明确找出之前和之后的区别。
关于javascript - 我可以从 "input"事件中获取什么样的信息?有没有更好的方法来跟踪文本更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37083754/