Auto New Tab

Open new tab, when click specified link.

  1. // ==UserScript==
  2. // @name Auto New Tab
  3. // @description:en Open new tab, when click specified link.
  4. // @version 0.1
  5. // @namespace https://twitter.com/foldrr
  6. // @include *
  7. // @require http://code.jquery.com/jquery-1.5.min.js
  8. // @description Open new tab, when click specified link.
  9. // ==/UserScript==
  10. (function(){
  11. var settings = [
  12. // Google
  13. {
  14. url: 'http://www.google.com/search',
  15. selector: 'h3 a'
  16. },
  17. // YouTube
  18. {
  19. url: 'http://www.youtube.com/results',
  20. selector: ['.result-item-thumb', 'h3 a']
  21. },
  22. // ニコニコ動画 キーワード検索
  23. {
  24. url: 'http://www.nicovideo.jp/search/',
  25. selector: ['.uad_thumbfrm p a', '.watch']
  26. },
  27. // ニコニコ動画 タグ検索
  28. {
  29. url: 'http://www.nicovideo.jp/tag/',
  30. selector: ['.uad_thumbfrm p a', '.watch']
  31. },
  32. // ニコニコ動画 コミュニティ動画
  33. {
  34. url: 'http://com.nicovideo.jp/community/co',
  35. selector: 'table[summary] a'
  36. },
  37. // ニコニコ動画 マイリスト
  38. {
  39. url: 'http://www.nicovideo.jp/mylist/',
  40. selector: '#SYS_page_items a'
  41. },
  42. // ニコニコ動画 マイページ マイリスト
  43. {
  44. url: 'http://www.nicovideo.jp/my/mylist/',
  45. selector: ['.mypageThumb', '.mylistVideo a']
  46. },
  47. // ニコニコ動画 マイページ 視聴履歴
  48. {
  49. url: 'http://www.nicovideo.jp/my/history',
  50. selector: ['.mypageThumb', '.mylistVideo a']
  51. },
  52. // ニコニコ生放送
  53. {
  54. url: 'http://live.nicovideo.jp/watch/',
  55. selector: '.grid a'
  56. }
  57. ];
  58. main();
  59. document.body.addEventListener('AutoPagerize_DOMNodeInserted',function(e){
  60. main();
  61. }, false);
  62. function main(){
  63. $(settings).each(function(){
  64. if(0 <= location.href.indexOf(this.url)){
  65. var selectorArray = this.selector instanceof Array ? this.selector : [this.selector];
  66. var selector = selectorArray.join(", ");
  67. (function(){
  68. var elems = $(selector);
  69. if(elems.length == 0){
  70. return;
  71. }
  72. // GM_log("selector = " + selector);
  73. // GM_log("elems.length = " + elems.length);
  74. elems.attr("target", "_blank");
  75. })();
  76. return false;
  77. }
  78. });
  79. }
  80. })();