diff options
| author | int3 | 2010-04-25 06:23:00 +0800 | 
|---|---|---|
| committer | Phil Crosby | 2010-04-24 14:12:52 -0700 | 
| commit | f84d189e2dab185f61c2bf7c812de56a25cf4f7e (patch) | |
| tree | 6dc1ea920dae3c978b3bbf4722713bb229afe5c5 /linkHints.js | |
| parent | aa948ff92d772083c346a1390b600c4127b0515d (diff) | |
| download | vimium-f84d189e2dab185f61c2bf7c812de56a25cf4f7e.tar.bz2 | |
Add link hints support for XHTML
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/linkHints.js b/linkHints.js index 6c4fb3d0..d2acb837 100644 --- a/linkHints.js +++ b/linkHints.js @@ -16,9 +16,13 @@ var shouldOpenLinkHintInNewTab = false;  // Whether we have added to the page the CSS needed to display link hints.  var linkHintsCssAdded = false; -// An XPath describing what a clickable element is. We could also look for images with an onclick -// attribute, but let's wait to see if that really is necessary. -var clickableElementsXPath = "//a | //textarea | //button | //select | //input[not(@type='hidden')] | //*[@onclick]"; +// Generate an XPath describing what a clickable element is. +var clickableElements = ["a", "textarea", "button", "select", "input[not(@type='hidden')]"]; +var clickableElementsXPath = ""; +for (var i in clickableElements) { +  clickableElementsXPath += "//" + clickableElements[i]  + " | " + "//xhtml:" + clickableElements[i] + " | "; +} +clickableElementsXPath += "//*[@onclick]";  // We need this as a top-level function because our command system doesn't yet support arguments.  function activateLinkHintsModeToOpenInNewTab() { activateLinkHintsMode(true); } @@ -66,7 +70,10 @@ function logXOfBase(x, base) { return Math.log(x) / Math.log(base); }   * of digits needed to enumerate all of the links on screen.   */  function getVisibleClickableElements() { -  var resultSet = document.evaluate(clickableElementsXPath, document.body, null, +  var resultSet = document.evaluate(clickableElementsXPath, document.body, +    function (namespace) { +      return namespace == "xhtml" ? "http://www.w3.org/1999/xhtml" : null; +    },      XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);    var visibleElements = [];  | 
