如何检查元素是否聚焦?
这是我的尝试:
我准备了一个函数来检查对象是否聚焦:
_FFCmd('FFau3.isfocused=function isfocused(a){try{return (a === document.activeElement)}catch(e){return}}')
$oElm = _FFXPath("//*[@id='someId']")
_FFIsFocused($oElm)
Func _FFIsFocused($sElement = "")
Local $isFoc = _FFCmd("FFau3.isfocused(" & $sElement & ")")
Return $isFoc
EndFunc ;==>_FFIsFocused
它永远不会是真的。 似乎我发送的对象是XUL对象类型。
从用户 Danp2 的 Autoit 论坛获得帮助!
最终代码为:
_FFCmd('FFau3.isfocused=function isfocused(a){try{return (a === FFau3.WCD.activeElement)}catch(e){return}}')
$oElm = _FFXPath("//*[@id='someId']")
ConsoleWrite(_FFIsFocused($oElm))
Func _FFIsFocused($sElement = "")
Local $isFoc = _FFCmd("FFau3.isfocused(" & $sElement & ")")
Return $isFoc
EndFunc ;==>_FFIsFocused
问题在于我们无法以这种方式访问document.activeElement
,因为我们是从 mozrepl 内部进行的。FFau3.WCD.activeElement
将改为使用。