覆盖现有的键下功能



我的扩展会遍历在任何加载的网站上输入的每个输入。

所做的是考虑每一个键下,如果它有一些价值,我就会操纵它。

我的后台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 = "??"; }  
}

我的问题是当我的网站在其内部HTML网页中已经包含onkeydown功能时。

例如:

摘自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 之前运行?

代替 document.onkeydown = returnKey; ,使用

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

这一行最重要的部分是第三个参数。当此参数的值为 true 时,事件侦听器在捕获阶段触发,这无法使用 event.preventDefault();event.stopPropagation(); 来阻止。

相关内容

  • 没有找到相关文章

最新更新