aboutsummaryrefslogtreecommitdiffstats
path: root/vimiumFrontend.js
diff options
context:
space:
mode:
authorR.T. Lechow2011-01-24 21:38:43 -0500
committerR.T. Lechow2011-01-25 22:49:23 -0500
commitddb0aee2a701f14069957580f2b873d13b34b041 (patch)
treebed0d7023d46e9cc8c79a7dd73eaa99855e6a2c8 /vimiumFrontend.js
parent5f944bc99c7cb25412d4f7a51b946b27a14ca77d (diff)
downloadvimium-ddb0aee2a701f14069957580f2b873d13b34b041.tar.bz2
Prefer rel attribute for next and previous nav.
Diffstat (limited to 'vimiumFrontend.js')
-rw-r--r--vimiumFrontend.js29
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() {