我有一个textarea。在写了一些拼写错误的文本并使用rightclick后 - >纠正单词被正确拼写的单词替换。 现在,我的问题是我需要在纠正完成后提取一些javascript代码。
我怎样才能捕捉到firefox拼写检查事件? 如果只有一个使用firefox附加组件的解决方案,我也很高兴知道那个。
答案 0 :(得分:3)
Mozilla在这种情况下发起oninput,没有在其他情况下测试,但应该在任何地方都可以使用。
有趣的是,在使用拼写纠正时,FF似乎会触发两个输入事件:它首先删除单词,然后插入新单词:
> value=[holy coww]
(right click and choose "cow")
> value=[holy ]
> value=[holy cow]
答案 1 :(得分:1)
我原本打算提出oninput
事件,例如thg435's answer,但我想我会先在评论中提取更多细节。如果您不需要区分拼写检查器更正和其他类型的输入(键盘,粘贴,拖放等),那么oninput
就可以正常完成工作。
如果您做想要区分这些类型的输入,那么我担心没有特别针对拼写检查器更正的事件。但是,对于大多数其他类型的输入存在事件,因此如果您首先检查其他类型的事件,则至少可以缩小输入事件进行更正的可能性。请考虑以下事项:
(function () {
var el = document.getElementById("MyInput"),
ignore = false;
el.oninput = function (e) {
// ignore the events that we don't need to capture
if (ignore) {
ignore = false;
return true;
}
// Your code here
}
// IIRC, you need the following line for the `ondrop` event to fire
el.ondragover = function () { return false; }
// Ignore paste, drop and keypress operations
el.onpaste = el.ondrop = el.onkeypress = setIgnore;
function setIgnore (e) {
ignore = true;
}
})();
然而,这不是一个完美的解决方案。例如,事件仍将触发不由键盘启动的撤消/重做操作(以及可能的其他一些操作)。