如何在键入特定单词时提醒用户 [英] How to alert user when a specific word is typed
问题描述
我是Javascript的新手,我正在创建我的第一个Chrome扩展程序。这真的只是个人挑战。
I am new to Javascript and I'm creating my first Chrome extention. It's really just a personal challenge.
我想在用户在任何网站上输入某些字词时提醒用户。也许是Google或Bing上的搜索输入字段,或者当他们输入Facebook状态时。
I want to alert the user when they type certain words on any website. Perhaps a search input field on Google or Bing, or maybe when they're typing a Facebook status.
我对Javascript不是很熟悉,这可能吗?在追踪和错误之后,我想出了这个,但它只适用于网站上的特定输入字段。
I am not very familiar with Javascript, so is this possible? After trail and error, I came up with this, but it only works on a specific input field on a website.
$(function() {
var triggerWords = ['badword', 'wordbad'];
$('#input').keyup(function() {
for (var i = 0; i < triggerWords.length; i++) {
if ($(this).val().toLowerCase() == triggerWords[i]) {
alert('Alert! You've typed a blocked word.');
}
}
});
});
推荐答案
上述答案适用于单个输入。但是,如果您希望它可以用于动态生成的输入,则可能需要稍微更改一下您的功能。
The answers above work well for a single input. However you might have to change your function a little if you want it to work for dynamically generated inputs as well.
这对动态生成的输入无效(演示)
$('input').keyup(function() {
for (var i = 0; i < triggerWords.length; i++) {
if ($(this).val().toLowerCase().indexOf(triggerWords[i]) != -1) {
alert("Alert! You've typed a blocked word.");
}
}
});
但这确实(演示)
$(document).on('keyup', 'input', function() {
for (var i = 0; i < triggerWords.length; i++) {
if ($(this).val().toLowerCase().indexOf(triggerWords[i]) != -1) {
alert("Alert! You've typed a blocked word.");
}
}
});
这篇关于如何在键入特定单词时提醒用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!