// Access Bar // version 0.9 BETA! // 2005-05-02 // Copyright (c) 2005, Mark Pilgrim // Released under the GPL license // http://www.gnu.org/copyleft/gpl.html // // -------------------------------------------------------------------- // // This is a Greasemonkey user script. To install it, you need // Greasemonkey 0.3 or later: http://greasemonkey.mozdev.org/ // Then restart Firefox and revisit this script. // Under Tools, there will be a new menu item to "Install User Script". // Accept the default configuration and install. // // To uninstall, go to Tools/Manage User Scripts, // select "Access Bar", and click Uninstall. // // -------------------------------------------------------------------- // // ==UserScript== // @name Access Bar // @namespace http://diveintomark.org/projects/greasemonkey/ // @description show accesskeys defined on page // @include * // ==/UserScript== function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } var akeys, descriptions, a, desc, label, div; akeys = document.evaluate( "//*[@accesskey]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); if (!akeys.snapshotLength) { return; } descriptions = new Array(); desc = ''; for (var i = 0; i < akeys.snapshotLength; i++) { a = akeys.snapshotItem(i); desctext = ''; if (a.nodeName == 'INPUT') { label = document.evaluate("//label[@for='" + a.name + "']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; if (label) { desctext = label.title; if (!desctext) { desctext = label.textContent; } } } if (!desctext) { desctext = a.textContent; } if (!desctext) { desctext = a.title; } if (!desctext) { desctext = a.name; } if (!desctext) { desctext = a.id; } if (!desctext) { desctext = a.href; } if (!desctext) { desctext = a.value; } desc = '[' + a.getAttribute('accesskey').toUpperCase() + '] '; if (a.href) { desc += '' + desctext + ''; } else { desc += desctext; } descriptions.push(desc); } descriptions.sort(); div = document.createElement('div'); div.id = 'accessbar-div-0'; desc = '