Javascript “onkeydown”属性可见但为空?
我正在编写一个Chrome扩展,并试图通过编程在您键入Facebook聊天的textarea元素上触发一个按键事件 如果我查看inspector中的元素,我可以看到它设置了onkeydown处理程序:Javascript “onkeydown”属性可见但为空?,javascript,html,facebook,event-handling,reactjs,Javascript,Html,Facebook,Event Handling,Reactjs,我正在编写一个Chrome扩展,并试图通过编程在您键入Facebook聊天的textarea元素上触发一个按键事件 如果我查看inspector中的元素,我可以看到它设置了onkeydown处理程序: onkeydown="run_with(this, ["legacy:control-textarea"], function() {TextAreaControl.getInstance(this)});" -但我不能触发它。在试图找出无法触发它的原因时,我发现当我使用其中一个类选择元素并在控
onkeydown="run_with(this, ["legacy:control-textarea"], function() {TextAreaControl.getInstance(this)});"
-但我不能触发它。在试图找出无法触发它的原因时,我发现当我使用其中一个类选择元素并在控制台中键入document.querySelector'.\u 552m.onkeydown时,它会显示为null。同样,对onkeydown使用getAttribute也会返回null
我错过了什么?如何获取此事件处理程序?为什么我可以在inspector中的元素上看到它的设置,而不能以通常的方式通过编程访问它?这里有什么奇怪的魔法吗
编辑:document.querySelector'.\u 552m'。属性显示列出的onkeydown属性…wtf…如果document.querySelector'.\u 552m'。属性显示onkeydown属性,您应该能够使用document.querySelector'.\u 552m.获取属性“onkeydown”它对我有效,在我的facebook页面上返回:
"run_with(this, ["legacy:control-textarea"], function() {TextAreaControl.getInstance(this)});"
否则,由于attributes对象只是一个对象,您可以使用document.querySelector'.\u 552m'上的getNamedItem'onkeydown'访问它。属性如下:
var elm = document.querySelector('._552m')
elm.attributes.getNamedItem('onkeydown') //returns the attr itself
elm.attributes.getNamedItem('onkeydown').value //returns the string value
您的代码试图如何触发它?带有$elem.triggerjQueryEvent的$.Event和带有本机事件的elem.dispatchEvent都不成功。我不确定这些jQuery函数是否会触发除jQuery事件侦听器之外的任何东西。也许 吧: