System list recombobulator

Takes the console list in the header and remakes it with your own chosen list of consoles.

目前为 2014-06-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name System list recombobulator
  3. // @description Takes the console list in the header and remakes it with your own chosen list of consoles.
  4. // @author King of Cats
  5. // @namespace Cats
  6. // @version 2
  7. // @grant none
  8. // @include http://www.gamefaqs.com/*
  9. // ==/UserScript==
  10.  
  11. // Feel free to make changes and redistribute as long as you make it known you're distributing an edited version of this script.
  12.  
  13. var mainNav = document.evaluate('//nav[@class="masthead_systems"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  14.  
  15. if (mainNav !== null) {
  16.  
  17. /* Default values as an example */
  18. //var newNamesHeader = ["3DS","DS","iPhone","PC","PS3","PS4","PSP","Vita","Wii U","Xbox 360","Xbox One"];
  19. //var newLinksHeader = ["3ds","ds","iphone","pc","ps3","ps4","psp","vita","wii-u","xbox360","xboxone"];
  20. //var newNamesDropdown = ["Android","Ouya","Arcade","PlayStation","Dreamcast","Playstation 2","Game Boy Advance","Saturn","GameCube","Super Nintendo","Genesis","Wii","NES","Xbox","Nintendo 64","And 96 More..."]
  21. //var newLinksDropdown = ["android","ouya","arcade","ps","dreamcast","ps2","gba","saturn","gamecube","snes","genesis","wii","nes","xbox","n64","systems.html"]
  22. //var newDropdownTitle = "More Systems"
  23. /* Custom entries */
  24. var newNamesHeader = ["","",""];
  25. var newLinksHeader = ["","",""];
  26. var newNamesDropdown = ["","",""];
  27. var newLinksDropdown = ["","",""];
  28. var newDropdownTitle = "";
  29. // false, remove dropdown. true, edit dropdown.
  30. var keepDropdown = true;
  31.  
  32. var newAnchorsHeader = new Array();
  33. var newAnchorsDropdown = new Array();
  34. var newListItemsDropdown = new Array();
  35. var moreSystems = document.evaluate('//span[@class="masthead_platform_drop"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  36. var headerLinks = mainNav.getElementsByTagName("a");
  37. for (var i = headerLinks.length-1; i >= 0; i--) {
  38. if (headerLinks[i].parentNode == mainNav) {
  39. headerLinks[i].parentNode.removeChild(headerLinks[i]);
  40. }
  41. }
  42. for (var i = 0; i < newNamesHeader.length; i++) {
  43. newAnchorsHeader[i] = document.createElement('a');
  44. newAnchorsHeader[i].setAttribute('href', '/'+newLinksHeader[i]);
  45. newAnchorsHeader[i].textContent = newNamesHeader[i];
  46. mainNav.insertBefore(newAnchorsHeader[i],moreSystems);
  47. }
  48. if (keepDropdown) {
  49. var dropdownContainer = moreSystems.getElementsByTagName("ul")[0];
  50. var dropdownLinks = moreSystems.getElementsByTagName("li");
  51. moreSystems.getElementsByTagName("a")[0].childNodes[0].textContent = newDropdownTitle+" ";
  52. for (var i = dropdownLinks.length-1; i >= 0; i--) {
  53. dropdownLinks[i].parentNode.removeChild(dropdownLinks[i]);
  54. }
  55. for (var i = 0; i < newNamesDropdown.length; i++) {
  56. newListItemsDropdown[i] = document.createElement('li');
  57. newListItemsDropdown[i].setAttribute('class', 'masthead_platform_subnav_item');
  58. newAnchorsDropdown[i] = document.createElement('a');
  59. newAnchorsDropdown[i].setAttribute('href', '/'+newLinksDropdown[i]);
  60. newAnchorsDropdown[i].textContent = newNamesDropdown[i];
  61. dropdownContainer.appendChild(newListItemsDropdown[i]);
  62. newListItemsDropdown[i].appendChild(newAnchorsDropdown[i]);
  63. }
  64. } else {
  65. moreSystems.parentNode.removeChild(moreSystems);
  66. }
  67.  
  68. }