Javascript `更改`事件不发生';当“输入”被编程方法更改时,不能调用

Javascript `更改`事件不发生';当“输入”被编程方法更改时,不能调用,javascript,html,events,Javascript,Html,Events,我有以下示例代码: //这是我的可编辑代码 document.querySelector('#word').addEventListener('change',function(){ document.querySelector(“#result”).innerHTML=this.value+“!”; }); //------------------------- //您不应该对下面代码的这一部分进行任何更改, //因为它是一个实例,可能类似于另一个程序和其他地方 //这是无法确定的。 doc

我有以下示例代码:

//这是我的可编辑代码
document.querySelector('#word').addEventListener('change',function(){
document.querySelector(“#result”).innerHTML=this.value+“!”;
});
//-------------------------
//您不应该对下面代码的这一部分进行任何更改,
//因为它是一个实例,可能类似于另一个程序和其他地方
//这是无法确定的。
document.querySelector(“#fill”).addEventListener('click',function(){
document.querySelector('#word').value=“示例文本”;
});

改变它!

您可以重新定义HtmlInputElement的值设置器

Object.defineProperty(HTMLInputElement.prototype, 'value', {
  set: function (value) { 
     this.setAttribute('value', value)
     updateHandler();
  }
});

最后,我没有找到比监视
输入值
的更改更好的方法:

//这是我的可编辑代码
var old_词;
setInterval(函数(){
var current_word=document.querySelector('#word').value;
if(旧单词!=当前单词){
document.querySelector(“#result”).innerHTML=current_word+“!”;
旧单词=当前单词;
}
}, 100);
//-------------------------
//您不应该对下面代码的这一部分进行任何更改,
//因为它是一个实例,可能类似于另一个程序和其他地方
//这是无法确定的。
document.querySelector(“#fill”).addEventListener('click',function(){
document.querySelector('#word').value=“示例文本”;
});

改变它!

这是不可能的。我想您没有阅读我问题中的最新注释。我在回答中添加了另一个建议,请检查是的,我知道设置间隔和检查输入,但这种方式有延迟,但不知道使用更改事件@NabiK.A.Z.检查另一个建议-重新定义属性value@GerardoFurtado我正在修改一个有很多函数的大程序,我想在里面添加一些代码;当输入以我不知道的任何方式发生更改时,我的事件将立即工作。您可以使用,并在调用setter时触发更改事件。但是程序的其余部分在设置值时必须引用代理对象而不是DOM对象本身,例如
proxy.value=…
而不是
DOM.value=…
@PatrickEvans正如我在前面的评论中所说的,我不能更改当前程序以前的代码。。。(我在问题中添加了note2并在代码中添加了注释)那么就没有其他本机进程来检测更改了。您可能需要使用诸如setInterval之类的工具对输入值进行频繁轮询,或者因为您正在使用tampermonkey替换web应用程序脚本,该脚本会将输入更改为修改后的输入。