-->

覆盖现有的onkeydown功能(override existing onkeydown funct

2019-07-05 07:43发布

我的分机经过上加载任何网站上输入的每个输入。

我做的是我认为每一个的onkeydown和操纵它,如果它有一定的价值。

我的背景js文件包含以下内容:

document.onkeydown = returnKey; 

function returnKey(evt) {   
    var evt  = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);  
    if ( node.value == 'fi' ) { evt.srcElement.value = "??"; }  
}

我的问题是,当我有一个已经包含的onkeydown功能在他们的innerHTML网页的网站。

例如:

从Facebook的主页采取:

<textarea class="uiTextareaAutogrow input" onkeydown="Bootloader.loadComponents([&quot;control-textarea&quot;], function() { TextAreaControl.getInstance(this) }.bind(this));

的切换node.value == 'fi'在?? 因为他们没有执行onkeydown="Bootloader ...我之前运行document.onkeydown

如何使执行其之前的onkeydown我的功能来运行?

Answer 1:

代替document.onkeydown = returnKey; , 使用

document.addEventListener('keydown', returnKey, true);

此行的最重要的部分是第三个参数。 当该参数的值是true ,事件侦听器被触发在捕获阶段,不能使用可以防止event.preventDefault();event.stopPropagation();



文章来源: override existing onkeydown function