Firefox/Chrome, get tab names/focus tab - Page 2 - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=26947&p=294316#p294316
==================================================
Note: To get the url for the active tab:
Get the URL of the current (active) browser tab - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=3702
Note: I don't have any code for getting the urls from tabs in general.
However, see Firefox/Chrome extensions:
Firefox/Chrome: copy titles/urls to the clipboard - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=22&t=66246
Bonus scripts:
Mozilla Firefox: scroll by small amounts - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=68578
Mozilla Firefox: Save Image As... using s not v - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=5&t=39310
htm/html files: identify the web browser that saved it - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=65683
==================================================
[EDIT:] Old versions of the code follow:
Why has nobody updated the Firefox get tab names/set active tab functions(/scripts), or made equivalent functions for Chrome?
Surely it's quite easy for the experts here?
And Firefox and Chrome are very common so there would be an immediate and obvious demand?
Well, I think I've managed to do it ...
JEE_FirefoxGetTabNames(hWnd, vSep="`n")
JEE_FirefoxFocusTabByNum(hWnd, vNum)
JEE_FirefoxFocusTabByName(hWnd, vTitle, vNum=1)
JEE_ChromeGetTabNames(hWnd, vSep="`n")
JEE_ChromeFocusTabByNum(hWnd, vNum)
JEE_ChromeFocusTabByName(hWnd, vTitle, vNum=1)
Note: the functions need Acc:
Acc library (MSAA) and AccViewer download links - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=6&t=26201
Working example script:
autohotkey - Using AHK to activate specific tabs in chrome or firefox - Stack Overflow
http://stackoverflow.com/questions/41478085/using-ahk-to-activate-specific-tabs-in-chrome-or-firefox
Mozilla Firefox
Code: Select all
;==================================================
JEE_FirefoxGetTabNames(hWnd, vSep:="`n")
{
oAcc := Acc_Get("Object", "4", 0, "ahk_id " hWnd)
Loop, % oAcc.accChildCount
if (oAcc.accName(A_Index) = "Browser tabs")
{
oAcc := Acc_Child(oAcc, A_Index)
break
}
oAcc := Acc_Child(oAcc, 1)
vOutput := ""
Loop, % oAcc.accChildCount
{
vTabText := oAcc.accName(A_Index)
if !(vTabText == "")
;if !(vTabText == "New Tab")
;if !(vTabText == "Open a new tab")
vOutput .= vTabText vSep
}
vOutput := SubStr(vOutput, 1, -StrLen(vSep)) ;trim right
oAcc := ""
return vOutput
}
;==================================================
JEE_FirefoxFocusTabByNum(hWnd, vNum)
{
oAcc := Acc_Get("Object", "4", 0, "ahk_id " hWnd)
Loop, % oAcc.accChildCount
if (oAcc.accName(A_Index) = "Browser tabs")
{
oAcc := Acc_Child(oAcc, A_Index)
break
}
oAcc := Acc_Child(oAcc, 1)
vRet := 0
for _, oChild in Acc_Children(oAcc)
if (A_Index = vNum)
{
oChild.accDoDefaultAction(0), vRet := A_Index
break
}
oAcc := oChild := ""
return vRet
}
;==================================================
JEE_FirefoxFocusTabByName(hWnd, vTitle, vNum:=1)
{
oAcc := Acc_Get("Object", "4", 0, "ahk_id " hWnd)
Loop, % oAcc.accChildCount
if (oAcc.accName(A_Index) = "Browser tabs")
{
oAcc := Acc_Child(oAcc, A_Index)
break
}
oAcc := Acc_Child(oAcc, 1)
vCount := 0, vRet := 0
for _, oChild in Acc_Children(oAcc)
{
vTabText := oChild.accName(0)
if (vTabText = vTitle)
vCount++
if (vCount = vNum)
{
oChild.accDoDefaultAction(0), vRet := A_Index
break
}
}
oAcc := oChild := ""
return vRet
}
;==================================================
Code: Select all
;==================================================
JEE_ChromeGetTabNames(hWnd, vSep:="`n")
{
oAcc := Acc_ObjectFromWindow(hWnd)
oAcc := Acc_Child(oAcc, 1), oAcc := Acc_Child(oAcc, 2)
oAcc := Acc_Child(oAcc, 2), oAcc := Acc_Child(oAcc, 2)
vOutput := ""
for _, oChild in Acc_Children(oAcc)
{
vTabText := Acc_Child(oChild, 1).accName(0)
if !(vTabText == "")
vOutput .= vTabText vSep
}
vOutput := SubStr(vOutput, 1, -StrLen(vSep)) ;trim right
oAcc := oChild := ""
return vOutput
}
;==================================================
JEE_ChromeFocusTabByNum(hWnd, vNum)
{
oAcc := Acc_ObjectFromWindow(hWnd)
oAcc := Acc_Child(oAcc, 1), oAcc := Acc_Child(oAcc, 2)
oAcc := Acc_Child(oAcc, 2), oAcc := Acc_Child(oAcc, 2)
vRet := 0
for _, oChild in Acc_Children(oAcc)
{
if (A_Index = vNum+1)
{
oChild.accDoDefaultAction(0), vRet := A_Index
break
}
}
oAcc := oChild := ""
return vRet
}
;==================================================
JEE_ChromeFocusTabByName(hWnd, vTitle, vNum:=1)
{
oAcc := Acc_ObjectFromWindow(hWnd)
oAcc := Acc_Child(oAcc, 1), oAcc := Acc_Child(oAcc, 2)
oAcc := Acc_Child(oAcc, 2), oAcc := Acc_Child(oAcc, 2)
vCount := 0, vRet := 0
for _, oChild in Acc_Children(oAcc)
{
vTabText := oChild.accName(0)
if (vTabText = vTitle)
vCount++
if (vCount = vNum)
{
oChild.accDoDefaultAction(0), vRet := A_Index
break
}
}
oAcc := oChild := ""
return vRet
}
;==================================================
Do post any issues or concerns.
Thanks for reading.