Autoit FF.au3 无法检查元素是否聚焦
Autoit FF.au3 cant check if element is focused
如何检查元素是否获得焦点?
这是我的尝试:
我准备了一个检查对象是否聚焦的函数:
_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 对象类型。
从 Autoit 论坛得到了用户 Danp2 的帮助!
最终代码为:
_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
将改为使用。
如何检查元素是否获得焦点?
这是我的尝试:
我准备了一个检查对象是否聚焦的函数:
_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 对象类型。
从 Autoit 论坛得到了用户 Danp2 的帮助!
最终代码为:
_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
将改为使用。