Created
August 6, 2016 11:36
-
-
Save navtej/75ad1d9615a0bd6f2cfa0d9eb2611a18 to your computer and use it in GitHub Desktop.
Some Functions TO work With Tabs Using MozRepl/Browser Console
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* From some a gist by someone */ | |
function next_tab_by_title(title_re) { | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var startIndex = tabContainer.selectedIndex; | |
var testIndex; | |
for (i = 0; i < numTabs - 1; i++) { | |
testIndex = (startIndex + i + 1) % numTabs; | |
if (tabs[testIndex].label.match(title_re)) { | |
tabContainer.selectedItem = tabs[testIndex]; | |
break; | |
} | |
} | |
} | |
function random_tab(title_re) { | |
/* from SO answer */ | |
function getRandomInt(min, max) { | |
return Math.floor(Math.random() * (max - min + 1)) + min; | |
} | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var randInt = getRandomInt(0,numTabs); | |
tabContainer.selectedItem = tabs[randInt]; | |
} | |
function print_all_urls() { | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var startIndex = tabContainer.selectedIndex; | |
var testIndex; | |
for (i = 0; i < numTabs - 1; i++) { | |
testIndex = (startIndex + i + 1) % numTabs; | |
repl.print(tabs[testIndex].linkedBrowser.currentURI.spec); | |
} | |
} | |
function print_domains(){ | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var startIndex = tabContainer.selectedIndex; | |
var testIndex; | |
var all_doms = new Array(); | |
for (i = 0; i < numTabs - 1; i++) { | |
testIndex = (startIndex + i + 1) % numTabs; | |
var dom = tabs[testIndex].linkedBrowser.currentURI.host; | |
var is_in_all_doms = (all_doms.indexOf(dom) > -1); | |
if (is_in_all_doms) continue; | |
all_doms.push(dom); | |
} | |
repl.print("ALl DOmains -> "+all_doms.length); | |
for (i = 0; i < all_doms.length ; i++) { | |
repl.print(all_doms[i]); | |
} | |
} | |
function sortProperties(obj, isNumericSort) | |
{ | |
isNumericSort=isNumericSort || false; // by default text sort | |
var sortable=[]; | |
for(var key in obj) | |
if(obj.hasOwnProperty(key)) | |
sortable.push([key, obj[key]]); | |
if(isNumericSort) | |
sortable.sort(function(a, b) | |
{ | |
return a[1]-b[1]; | |
}); | |
else | |
sortable.sort(function(a, b) | |
{ | |
var x=a[1].toLowerCase(), | |
y=b[1].toLowerCase(); | |
return x<y ? -1 : x>y ? 1 : 0; | |
}); | |
return sortable; // array in format [ [ key1, val1 ], [ key2, val2 ], ... ] | |
} | |
function print_domains_tabcount(){ | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var startIndex = tabContainer.selectedIndex; | |
var testIndex; | |
var all_doms = {}; | |
for (i = 0; i < numTabs - 1; i++) { | |
testIndex = (startIndex + i + 1) % numTabs; | |
var dom = tabs[testIndex].linkedBrowser.currentURI.host; | |
var is_in_all_doms = all_doms.hasOwnProperty(dom) ; | |
if (is_in_all_doms) { | |
all_doms[dom] = all_doms[dom]+1; | |
} else { | |
all_doms[dom] = 1; | |
} | |
} | |
return sortProperties(all_doms,1); | |
} | |
function next_tab_by_url(title_re) { | |
var tabContainer = window.getBrowser().tabContainer; | |
var tabs = tabContainer.childNodes; | |
var numTabs = tabs.length; | |
var startIndex = tabContainer.selectedIndex; | |
var testIndex; | |
for (i = 0; i < numTabs - 1; i++) { | |
testIndex = (startIndex + i + 1) % numTabs; | |
if (tabs[testIndex].linkedBrowser.currentURI.spec.match(title_re)) { | |
tabContainer.selectedItem = tabs[testIndex]; | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment