微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mark.js contenteditable - 在输入上运行 Mark

如何解决Mark.js contenteditable - 在输入上运行 Mark

我正在制作一个带有 contenteditable div 的“单词检查器”,同时使用 mark.js 来突出某些单词/单词组。

我遇到的问题是,在输入(复制/粘贴)单词时,我找不到“运行”mark.js方法

我尝试通过向 textarea 添加事件侦听器来实现此目的,但这会引发错误标记未定义。 textarea.addEventListener("input",mark); 并将标记更改为实例 {{1 }} 这给了我一个错误TypeError: Property 'handleEvent' is not callable.Here is the fiddle

我还查看了在 SO 和 google 上找到的各种示例,但我似乎无法找到我正在寻找的内容。我找到的最接近的东西是 this,但我仍然无法到达 work

任何帮助将不胜感激。如果我可以提供任何其他信息,请告诉我。

textarea.addEventListener("input",instance);
var textarea = document.getElementById("textarea");
var instance = new Mark("div.textarea");

var red   = ["red","blood"];
var brown = ["brown","pudding"];
var green = ["green","grass"];

instance.mark(red,{
   seperatewordsearch: false,className: "red","accuracy": {
      "value": "exactly","limiters": [",",".","!","?"]
   }
});


instance.mark(brown,className: "brown","?"]
   }
});

instance.mark(green,className: "green","?"]
   }
});

textarea.addEventListener("input",mark);
.red {
    background-color: lightcoral;
}

.green{
    background-color: lightgreen;
}

.brown{
    background-color: burlywood;
}

解决方法

您可以将所有 instance.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,className: "brown","?"]
     }
  });

  instance.mark(green,className: "green","?"]
     }
  });
}

//call the markWords function to do the initial highlighting
markWords();

//setup listener to call function markWords
textarea.addEventListener("input",markWords);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?