K-Meleon
KMeleonWiki > Resources > MacroLibrary > KmmOpenLinksAsTabs
Submitted by: JamesD and desga2
Notes:
Opens each link on a page in a new tab. Note that there are strict rules for the type of links and all pages may not pass.
Open your User Macro Folder (Edit > Configuration > User-Defined Macros) or your Macro Folder (Edit > Configuration > Macros) and create the following text file(s):
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # ---------- OpenLinksAsTabs --------------------------------------------------- # # Dependencies : main.kmm, Ver. 1.5.x, Tabs # Resources : - # Preferences : "browser.link.open_newwindow", # "browser.link.open_newwindow.restriction", # "dom.disable_open_during_load" # Version : 0.0 2/24/09 JamesD & desga2 # ----------------------------------------------------------------------------- _OpenLinksAsTabs{ # Obtain current window diversion values: $_PUB_value1 = getpref(INT, "browser.link.open_newwindow"); $_PUB_value2 = getpref(INT, "browser.link.open_newwindow.restriction"); $_PUB_value3 = getpref(BOOL, "dom.disable_open_during_load"); # Change window diversion values if needed $_PUB_value1 != 3 ? setpref(INT,"browser.link.open_newwindow", 3):0 ; $_PUB_value2 != 0 ? setpref(INT,"browser.link.open_newwindow.restriction", 0):0 ; $_PUB_value3 != false ? setpref(BOOL,"dom.disable_open_during_load", false):0 ; # Open all links in page: &_OpenLAT; id(ID_TAB_LAST); # Restore current window diversion value: $_PUB_value1 == getpref(INT, "browser.link.open_newwindow") ? 0: setpref(INT,"browser.link.open_newwindow", $_PUB_value1) ; $_PUB_value2 == getpref(INT, "browser.link.open_newwindow.restriction") ? 0: setpref(INT,"browser.link.open_newwindow.restriction", $_PUB_value2) ; $_PUB_value3 == getpref(BOOL, "dom.disable_open_during_load") ? 0: setpref(BOOL,"dom.disable_open_during_load", $_PUB_value3) ; } _OpenLAT{ injectJS("javascript:(function(){var n_to_open,dl,dll,i; function linkIsSafe(u) { if (u.substr(0,7)=='mailto:') return false; if (u.substr(0,11)=='javascript:') return false; return true; } n_to_open = 0; dl = document.links; dll = dl.length; for(i = 0; i < dll; ++i) { if (linkIsSafe(dl[i].href)) ++n_to_open; } if (!n_to_open) alert ('no links'); else { if (confirm('Open ' + n_to_open + ' links in new tabs?')) for (i = 0; i < dll; ++i) if (linkIsSafe(dl[i].href)) window.open(dl[i].href); } })();"); } _OpenLinksAsTabs_BuildMenu{ # Add "Open Links in Tabs" option to tab bar right click context menu: $kTabs==true ? setmenu("NavTab",macro,_("Open Links in Tabs"),"_OpenLinksAsTabs",4):0; # Add "Open Links in Tabs" option to right click context menu: $kTabs==true ? setmenu("Nav",separator, -1):0; $kTabs==true ? setmenu("Nav",macro,_("Open Links in Tabs"),"_OpenLinksAsTabs"):0; } $OnInit=$OnInit."_OpenLinksAsTabs_BuildMenu;"; $macroModules=$macroModules."OpenLinksAsTabs;";