diff options
| author | R.T. Lechow | 2011-01-24 21:38:43 -0500 |
|---|---|---|
| committer | R.T. Lechow | 2011-01-25 22:49:23 -0500 |
| commit | ddb0aee2a701f14069957580f2b873d13b34b041 (patch) | |
| tree | bed0d7023d46e9cc8c79a7dd73eaa99855e6a2c8 /vimiumFrontend.js | |
| parent | 5f944bc99c7cb25412d4f7a51b946b27a14ca77d (diff) | |
| download | vimium-ddb0aee2a701f14069957580f2b873d13b34b041.tar.bz2 | |
Prefer rel attribute for next and previous nav.
Diffstat (limited to 'vimiumFrontend.js')
| -rw-r--r-- | vimiumFrontend.js | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 0ee3f762..cc991f02 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -551,29 +551,42 @@ function performBackwardsFind() { } function findAndFollowLink(linkStrings) { - linkStrings.forEach(function(findModeQuery) { - findModeQueryHasResults = window.find(findModeQuery, false, true, true, false, true, false); + for (i = 0; i < linkStrings.length; i++) { + var findModeQueryHasResults = window.find(linkStrings[i], false, true, true, false, true, false); if (findModeQueryHasResults) { var node = window.getSelection().anchorNode; while (node.nodeName != 'BODY') { if (node.nodeName == 'A') { window.location = node.href; - return; + return true; } node = node.parentNode; } } - }); + } +} + +function findAndFollowRel(value) { + var relTags = ['link', 'a', 'area']; + for (i = 0; i < relTags.length; i++) { + var elements = document.getElementsByTagName(relTags[i]); + for (j = 0; j < elements.length; j++) { + if (elements[j].hasAttribute('rel') && elements[j].rel == value) { + window.location = elements[j].href; + return true; + } + } + } } function goPrevious() { - previousStrings = ["\bprev\b","\bprevious\b","\u00AB","<<","<"]; - findAndFollowLink(previousStrings); + var previousStrings = ["\bprev\b","\bprevious\b","\u00AB","<<","<"]; + findAndFollowRel('prev') || findAndFollowLink(previousStrings); } function goNext() { - nextStrings = ["\bnext\b","\u00BB",">>","\bmore\b",">"]; - findAndFollowLink(nextStrings); + var nextStrings = ["\bnext\b","\u00BB",">>","\bmore\b",">"]; + findAndFollowRel('next') || findAndFollowLink(nextStrings); } function showFindModeHUDForQuery() { |
