0

I have 2 separate bookmarklets

javascript: (function () { var url = document.location; var links = document.getElementsByTagName('link'); var myvar = 'none'; for (var i = 0, l; l = links[i]; i++) { if (l.getAttribute('rel') == 'next') { myvar = l.getAttribute('href'); break; } } alert(myvar); })();

and

javascript: (function () { var url = document.location; var links = document.getElementsByTagName('link'); var myvar = 'none'; for (var i = 0, l; l = links[i]; i++) { if (l.getAttribute('rel') == 'prev') { myvar = l.getAttribute('href'); break; } } alert(myvar); })();

and I want to combine them in to one so both are show up in a single bookmarklet . I was hoping this would do it but obviously I stuffed up

javascript: (function () { var url = document.location; var links = document.getElementsByTagName('link'); var myvar = 'none'; var myvar1 = 'none'; for (var i = 0, l; l = links[i]; i++) { if (l.getAttribute('rel') == 'next') { myvar = l.getAttribute('href'); break; } } { if (l.getAttribute('rel') == 'prev') { myvar1 = l.getAttribute('href'); break; } } alert(myvar + ' ' + myvar1); })();

1 Answers1

0

Try this:

javascript: (function () { var url = document.location; var links = document.getElementsByTagName('link'); var prev = 'none', next = 'none'; for (var i = 0, l; l = links[i]; i++) { if (l.getAttribute('rel') == 'prev') { prev = l.getAttribute('href'); } else if(l.getAttribute('rel') == 'next') { next = l.getAttribute('href'); } if(prev != 'none' && next != 'none') { break; }} alert(prev + '\n' + next); })();

Additionally, here's a minified version:

javascript:(function(){for(var e=document.getElementsByTagName("link"),b="none",c="none",d=0,a;(a=e[d])&&!("prev"==a.getAttribute("rel")?b=a.getAttribute("href"):"next"==a.getAttribute("rel")&&(c=a.getAttribute("href")),"none"!=b&&"none"!=c);d++);alert(b+"\n"+c)})();
Gawdl3y
  • 230
  • 1
  • 3
  • 15