Javascript Mark.js contenteditable-在输入时运行Mark
我正在制作一个带有Javascript Mark.js contenteditable-在输入时运行Mark,javascript,mark.js,Javascript,Mark.js,我正在制作一个带有contenteditablediv的“单词检查器”,同时使用mark.js提高某些单词/词组的优先级 我遇到的问题是,在键入(复制/粘贴)单词时,我找不到“运行”Mark.js的方法 我试图通过向textarea添加事件侦听器来实现这一点,但这会引发一个错误:mark未定义文本区域。addEventListener(“输入”,标记)并将标记更改为实例textarea.addEventListener(“输入”,实例)这给了我一个错误:TypeError:属性“handleEv
contenteditable
div的“单词检查器”,同时使用mark.js提高某些单词/词组的优先级
我遇到的问题是,在键入(复制/粘贴)单词时,我找不到“运行”Mark.js的方法
我试图通过向textarea添加事件侦听器来实现这一点,但这会引发一个错误:mark未定义<代码>文本区域。addEventListener(“输入”,标记)代码>并将标记更改为实例textarea.addEventListener(“输入”,实例)代码>这给了我一个错误:TypeError:属性“handleEvent”不可调用
我也看过SO和google上的各种例子,但我似乎找不到我要找的东西。我找到的最接近的东西是,但我还是找不到
任何帮助都将不胜感激。如果我能提供任何其他信息,请让我知道
var textarea=document.getElementById(“textarea”);
var实例=新标记(“div.textarea”);
var red=[“红色”,“血液”];
var brown=[“brown”,“pudding”];
绿色变量=[“绿色”、“草”];
例如,马克(红色{
separateWordSearch:false,
类名:“红色”,
“准确性”:{
“值”:“完全正确”,
“限制器”:[“,”,“,!”,“?”]
}
});
马克(布朗){
separateWordSearch:false,
类名:“布朗”,
“准确性”:{
“值”:“完全正确”,
“限制器”:[“,”,“,!”,“?”]
}
});
例如,马克(绿色{
separateWordSearch:false,
类名:“绿色”,
“准确性”:{
“值”:“完全正确”,
“限制器”:[“,”,“,!”,“?”]
}
});
textarea.addEventListener(“输入”,标记)代码>
.red{
背景颜色:浅珊瑚;
}
格林先生{
背景颜色:浅绿色;
}
布朗先生{
背景颜色:白肋木;
}
文本检查器
我讨厌血布丁,你也讨厌。
您可以将所有的实例.mark(…)
调用放在一个单独的函数中(例如markWords
)。
然后,当输入文本更改时,可以调用该函数:
var textarea = document.getElementById("textarea");
var instance = new Mark("div.textarea");
var red = ["red", "blood"];
var brown = ["brown", "pudding"];
var green = ["green", "grass"];
//create a function which will highlight all specified words
var markWords = function() {
instance.mark(red, {
seperateWordSearch: false,
className: "red",
"accuracy": {
"value": "exactly",
"limiters": [",", ".", "!", "?"]
}
});
instance.mark(brown, {
seperateWordSearch: false,
className: "brown",
"accuracy": {
"value": "exactly",
"limiters": [",", ".", "!", "?"]
}
});
instance.mark(green, {
seperateWordSearch: false,
className: "green",
"accuracy": {
"value": "exactly",
"limiters": [",", ".", "!", "?"]
}
});
}
//call the markWords function to do the initial highlighting
markWords();
//setup listener to call function markWords
textarea.addEventListener("input", markWords);
非常感谢。tt起作用了。但有一个问题。一旦我输入绿色,它就会将光标/类型指示器抛到单词的开头。知道为什么以及如何修复吗?它看起来像mark.js中的一个bug,试着打开一个问题:谢谢。我在这里发现了一个类似的问题。你知道我该如何解决这个问题吗?我看过这些问题,但没有找到解决办法。我还尝试调用文档()中提到的done
回调函数中的instance.mark
的后续调用,但也没有任何帮助。在github上发布了一个问题。谢谢你的帮助。非常感谢。这将带来一个新问题,希望有人知道解决方法。