Javascript 如何在键入特定单词时提醒用户
我是Javascript新手,我正在创建我的第一个Chrome扩展。这真的只是个人的挑战 我想提醒用户,当他们在任何网站上键入某些单词时。可能是Google或Bing上的搜索输入字段,也可能是当他们输入Facebook状态时 我对Javascript不是很熟悉,所以这可能吗?经过反复试验,我提出了这个方法,但它只适用于网站上的特定输入字段Javascript 如何在键入特定单词时提醒用户,javascript,jquery,Javascript,Jquery,我是Javascript新手,我正在创建我的第一个Chrome扩展。这真的只是个人的挑战 我想提醒用户,当他们在任何网站上键入某些单词时。可能是Google或Bing上的搜索输入字段,也可能是当他们输入Facebook状态时 我对Javascript不是很熟悉,所以这可能吗?经过反复试验,我提出了这个方法,但它只适用于网站上的特定输入字段 $(function() { var triggerWords = ['badword', 'wordbad']; $('#input').k
$(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.');
}
}
});
});
$(函数(){
var triggerWords=['badword','wordbad'];
$('#input').keyup(函数(){
for(var i=0;i
好办法,你走对了路
$(function(){
添加一个匿名函数,但您必须手动调用它(没有名称的函数很难调用:)。最好使用这个:$(document)。ready(function(){
它告诉文档在文档准备好时调用这个匿名函数
$(“#input”)
用d
=#input
选择所有元素。这不是您想要的。您希望选择所有input
元素(删除id选择器
)。顺便说一句:。someClass
将选择所有class
=的元素
$(this).val().toLowerCase()==triggerWords[i]
测试是否只键入了一个被阻止的单词。这完全可以,但我认为您更希望键入的字符串包含一个单词。使用$(this).val().toLowerCase().indexOf(triggerWords[i])!=-1
合计:
$( document ).ready(function() {
var triggerWords = ['badword', 'wordbad'];
$('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.");
}
}
});
});
上面的答案适用于单个输入。但是,如果您希望函数也适用于动态生成的输入,则可能需要稍微更改函数
这对动态生成的输入不起作用()
$('input').keyup(函数(){
for(var i=0;i
但这确实是
$(文档).on('keyup','input',function()){
for(var i=0;i
那么为什么不将所有可以输入文本的元素作为目标呢?例如input、textarea、contenteditable divs,我该怎么做呢?像这样可能('input','textarea')
这里有一个例子:你回答了我的问题。我如何关闭它?我建议使用input进行复制粘贴$(函数(){
相当于$(document).ready(function(){
。它只是一个快捷方式
for(var word in triggerWords){
if($(this).val().toLowerCase().indexOf(word) != -1) {...}
}
$('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.");
}
}
});