Greasy Fork 支持简体中文。

DF Bookmarks

Tool to let you navigate easier through DF

目前為 2017-09-02 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name DF Bookmarks
  3. // @version 1.30
  4. // @description Tool to let you navigate easier through DF
  5. // @author A Meaty Alt
  6. // @include /onlinezombiemmo/index.php/
  7. // @exclude fairview.deadfrontier.com/onlinezombiemmo/index.php?page=21
  8. // @exclude https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=21
  9. // @grant none
  10. // @require https://greasyfork.org/scripts/32816-append-script/code/Append%20Script.js?version=215508
  11. // @noframes
  12. // @run-at document-idle
  13. // @namespace
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. var elements = {};
  18.  
  19. var hamburgerImg = document.createElement("img");
  20. hamburgerImg.src = "https://puu.sh/xpuv8/067b3cef24.png";
  21. hamburgerImg.height = "50";
  22. hamburgerImg.width = "40";
  23. elements.hamburgerLink = document.createElement("a");
  24. elements.hamburgerLink.href = "#";
  25. elements.hamburgerLink.id = "hamburger";
  26. elements.hamburgerLink.appendChild(hamburgerImg);
  27. elements.hamburgerLink.setAttribute("onclick", "showMenu()");
  28. elements.hamburgerLink.style.float += " left";
  29. elements.hamburgerLink.style.textAlign = "center";
  30. elements.hamburgerLink.style.marginLeft = "30px";
  31. function showMenu(){
  32. var menu = document.getElementById("menu_holder");
  33. if(menu){
  34. if(menu.hidden)
  35. menu.hidden = false;
  36. else
  37. menu.hidden = true;
  38. }
  39. else
  40. createMenu();
  41. }
  42. appendScript(showMenu.toString());
  43.  
  44. function createMenu(){
  45. function createBookmark(name, link){
  46. var newBookmarkHolder = document.createElement("span");
  47. newBookmarkHolder.classList.add("newBookmark");
  48. var i = document.getElementsByClassName("newBookmark").length+1;
  49. newBookmarkHolder.id = "bookmark_"+i;
  50. newBookmarkHolder.innerHTML += "<a href='"+link+"'>"+name + "</a>";
  51. newBookmarkHolder.style.marginLeft = "30px";
  52. var removeBookmarkImg = document.createElement("img");
  53. removeBookmarkImg.src = "https://cdn1.iconfinder.com/data/icons/perfect-flat-icons-2/512/Erase-2.png";
  54. removeBookmarkImg.style.height = "20px";
  55. removeBookmarkImg.style.width = "20px";
  56. removeBookmarkImg.style.cursor = "pointer";
  57. removeBookmarkImg.style.marginLeft = "10px";
  58. removeBookmarkImg.id = "remove_"+i;
  59. removeBookmarkImg.setAttribute("onclick", 'var bookmarks = JSON.parse(localStorage.getItem("df_bookmarks"));delete bookmarks[this.parentElement.id];localStorage.setItem("df_bookmarks", JSON.stringify(bookmarks));this.parentElement.outerHTML = ""; ');
  60. newBookmarkHolder.appendChild(removeBookmarkImg);
  61. document.getElementById("new_bookmark_holder").appendChild(newBookmarkHolder);
  62. var bookmarks = localStorage.getItem("df_bookmarks")? JSON.parse(localStorage.getItem("df_bookmarks")) : {};
  63. bookmarks[newBookmarkHolder.id] = name+"|"+link;
  64. localStorage.setItem("df_bookmarks", JSON.stringify(bookmarks));
  65. }
  66. appendScript(createBookmark.toString());
  67. function loadBookmarks(){
  68. if(localStorage.getItem("df_bookmarks")){
  69. var bookmarks = JSON.parse(localStorage.getItem("df_bookmarks"));
  70. for(var i in bookmarks){
  71. var bookmark = bookmarks[i].split("|");
  72. createBookmark(bookmark[0], bookmark[1]);
  73. }
  74. }
  75. }
  76. function createAddBookmark(){
  77. function addBookmark(){
  78. var name = prompt("Please enter a name for the bookmark");
  79. if(name){
  80. var link = prompt("Please enter a link for the bookmark (Don't forget the http:// or https:// at the begining of the address)");
  81. if(link){
  82. createBookmark(name, link);
  83. }
  84. else{
  85. alert("Error adding bookmark");
  86. }
  87. }
  88. else{
  89. alert("Error adding bookmark");
  90. }
  91. }
  92. appendScript(addBookmark.toString());
  93. var addBookmarkImg = document.createElement("img");
  94. addBookmarkImg.src = "https://cdn3.iconfinder.com/data/icons/musthave/256/Add.png";
  95. addBookmarkImg.style.height = "30px";
  96. addBookmarkImg.style.width = "30px";
  97. addBookmarkImg.style.position = "relative";
  98. addBookmarkImg.style.cursor = "pointer";
  99. addBookmarkImg.style.marginBottom = "10px";
  100. addBookmarkImg.style.right = "30px";
  101. addBookmarkImg.style.float = "right";
  102. addBookmarkImg.setAttribute("onclick", "addBookmark()");
  103. document.getElementById("menu_holder").appendChild(addBookmarkImg);
  104. }
  105. var menuHolder = document.createElement("div");
  106. menuHolder.style.zIndex = 99;
  107. menuHolder.style.position = "relative";
  108. menuHolder.style.top = "10px";
  109. menuHolder.id = "menu_holder";
  110. var bookmarkHolder = document.createElement("span");
  111. bookmarkHolder.id = "new_bookmark_holder";
  112. menuHolder.appendChild(bookmarkHolder);
  113. var table = document.getElementsByTagName("table")[7];
  114. table.appendChild(menuHolder);
  115. loadBookmarks();
  116. createAddBookmark();
  117. }
  118.  
  119. var outpostImg = document.createElement("img");
  120. outpostImg.src = "https://puu.sh/xl87q/22ec393481.png";
  121. outpostImg.height = "30";
  122. outpostImg.width = "30";
  123. elements.outpostLink = document.createElement("a");
  124. elements.outpostLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php";
  125. elements.outpostLink.appendChild(outpostImg);
  126. elements.outpostLink.innerHTML += "<div>Outpost</div>";
  127. elements.outpostLink.style.float += " left";
  128. elements.outpostLink.style.textAlign = "center";
  129. elements.outpostLink.style.marginLeft = "30px";
  130.  
  131. var creditImg = document.createElement("img");
  132. creditImg.src = "https://puu.sh/xl6wJ/505c55fd89.png";
  133. creditImg.height = "30";
  134. creditImg.width = "30";
  135. elements.creditLink = document.createElement("a");
  136. elements.creditLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=28";
  137. elements.creditLink.appendChild(creditImg);
  138. elements.creditLink.innerHTML += "<div>Credit Shop</div>";
  139. elements.creditLink.style.float += " left";
  140. elements.creditLink.style.textAlign = "center";
  141. elements.creditLink.style.marginLeft = "30px";
  142.  
  143. var forumImg = document.createElement("img");
  144. forumImg.src = "https://puu.sh/xl6wI/f7c1dc5342.png";
  145. forumImg.height = "30";
  146. forumImg.width = "30";
  147. elements.forumLink = document.createElement("a");
  148. elements.forumLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?action=forum";
  149. elements.forumLink.appendChild(forumImg);
  150. elements.forumLink.innerHTML += "<div>Forum</div>";
  151. elements.forumLink.style.float += " left";
  152. elements.forumLink.style.textAlign = "center";
  153. elements.forumLink.style.marginLeft = "30px";
  154.  
  155. var marketImg = document.createElement("img");
  156. marketImg.src = "https://puu.sh/xl6wG/9513335dc7.png";
  157. marketImg.height = "30";
  158. marketImg.width = "30";
  159. elements.marketLink = document.createElement("a");
  160. elements.marketLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=35";
  161. elements.marketLink.appendChild(marketImg);
  162. elements.marketLink.innerHTML += "<div>Market</div>";
  163. elements.marketLink.style.float += " left";
  164. elements.marketLink.style.textAlign = "center";
  165. elements.marketLink.style.marginLeft = "30px";
  166.  
  167. var bankImg = document.createElement("img");
  168. bankImg.src = "http://i.imgur.com/ves2oqQ.png";
  169. bankImg.height = "30";
  170. bankImg.width = "30";
  171. elements.bankLink = document.createElement("a");
  172. elements.bankLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=15";
  173. elements.bankLink.appendChild(bankImg);
  174. elements.bankLink.innerHTML += "<div>Bank</div>";
  175. elements.bankLink.style.float += " left";
  176. elements.bankLink.style.textAlign = "center";
  177. elements.bankLink.style.marginLeft = "30px";
  178.  
  179. var storageImg = document.createElement("img");
  180. storageImg.src = "http://i.imgur.com/uwgi6jw.png";
  181. storageImg.height = "30";
  182. storageImg.width = "30";
  183. elements.storageLink = document.createElement("a");
  184. elements.storageLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=50";
  185. elements.storageLink.appendChild(storageImg);
  186. elements.storageLink.innerHTML += "<div>Storage</div>";
  187. elements.storageLink.style.float += " left";
  188. elements.storageLink.style.textAlign = "center";
  189. elements.storageLink.style.marginLeft = "30px";
  190.  
  191. var logoutImg = document.createElement("img");
  192. logoutImg.src = "https://puu.sh/xl6wH/91e58a7b64.png";
  193. logoutImg.height = "30";
  194. logoutImg.width = "30";
  195. elements.logoutLink = document.createElement("a");
  196. elements.logoutLink.href = getLogoutLink();
  197. elements.logoutLink.appendChild(logoutImg);
  198. elements.logoutLink.innerHTML += "<div>Logout</div>";
  199. elements.logoutLink.style.float = "right";
  200. elements.logoutLink.style.textAlign = "center";
  201. elements.logoutLink.style.marginRight = "30px";
  202.  
  203. var profileImg = document.createElement("img");
  204. profileImg.src = "https://puu.sh/xldVQ/91268b98a4.png";
  205. profileImg.height = "30";
  206. profileImg.width = "30";
  207. elements.profileLink = document.createElement("a");
  208. elements.profileLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?action=profile";
  209. elements.profileLink.style.float = "right";
  210. elements.profileLink.appendChild(profileImg);
  211. elements.profileLink.innerHTML += "<div>Profile</div>";
  212. elements.profileLink.style.textAlign = "center";
  213. elements.profileLink.style.marginRight = "30px";
  214.  
  215. var inventoryImg = document.createElement("img");
  216. inventoryImg.src = "https://puu.sh/xle3E/7689941f18.png";
  217. inventoryImg.height = "30";
  218. inventoryImg.width = "30";
  219. elements.inventoryLink = document.createElement("a");
  220. elements.inventoryLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=25";
  221. elements.inventoryLink.style.float = "right";
  222. elements.inventoryLink.appendChild(inventoryImg);
  223. elements.inventoryLink.innerHTML += "<div>Inventory</div>";
  224. elements.inventoryLink.style.textAlign = "center";
  225. elements.inventoryLink.style.marginRight = "30px";
  226.  
  227. var yardImg = document.createElement("img");
  228. yardImg.src = "https://puu.sh/xmmVQ/44651a4cc6.png";
  229. yardImg.height = "30";
  230. yardImg.width = "30";
  231. elements.yardLink = document.createElement("a");
  232. elements.yardLink.href = "https://fairview.deadfrontier.com/onlinezombiemmo/index.php?page=24";
  233. elements.yardLink.style.float = "right";
  234. elements.yardLink.appendChild(yardImg);
  235. elements.yardLink.innerHTML += "<div>The Yard</div>";
  236. elements.yardLink.style.textAlign = "center";
  237. elements.yardLink.style.marginRight = "30px";
  238.  
  239. function getLogoutLink(){
  240. return $("img[name=logout]").parent()[0].href;
  241. }
  242.  
  243. var table = document.getElementsByTagName("table")[7];
  244. table.innerHTML = "<div id=bookmark_holder>";
  245. dst = document.getElementById("bookmark_holder");
  246. dst.style.overflow = "hidden";
  247.  
  248. for(var element in elements){
  249. if(element.indexOf("Link") > -1){
  250. dst.appendChild(elements[element]);
  251. }
  252. }
  253. table.style.backgroundImage = "url(https://puu.sh/xm1DU/7f0d182487.png)";
  254. table.style.transform = "scaleY(1.2)";
  255. table.style.position = "relative";
  256. table.style.top = "5px";
  257.  
  258. var annoyingBiatch = document.getElementsByTagName("tr")[1];
  259. annoyingBiatch.style.height = "220px";
  260. appendScript(createMenu.toString());
  261. })();