bahamut comment enhanced

可調整巴哈姆特哈啦討論區留言的顯示順序(新留言在上或舊留言在上)、切換直接顯示留言者帳號、加入留言樓層數字、單獨開啟關閉某篇文章圖片影像

当前为 2017-08-18 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name bahamut comment enhanced
  3. // @namespace http://userscripts/user
  4. // @include http://forum.gamer.com.tw/C.php?*
  5. // @include http://forum.gamer.com.tw/Co.php?*
  6. // @include https://forum.gamer.com.tw/C.php?*
  7. // @include https://forum.gamer.com.tw/Co.php?*
  8. // @description 可調整巴哈姆特哈啦討論區留言的顯示順序(新留言在上或舊留言在上)、切換直接顯示留言者帳號、加入留言樓層數字、單獨開啟關閉某篇文章圖片影像
  9. // @version 1.11
  10. // @grant GM_getValue
  11. // @grant GM_setValue
  12. // @grant GM_addStyle
  13. // ==/UserScript==
  14. //滑鼠移上留言時背景底色變化
  15. GM_addStyle(".c-reply__item:hover {background-color : #eaeaea !important;}");
  16. GM_addStyle(".c-reply__head .old-reply {margin-right: 20px !important;float:right !important;}");
  17. GM_addStyle(".c-post__header__tools button {margin-left: 20px !important;}");
  18. GM_addStyle(".reply-content__time {text-align:right !important; float:right !important;}");
  19. GM_addStyle(".BCEf {color:#585858; margin:0 5px 0 -15px; float:left;}");
  20. GM_addStyle(".BCEn {color:#282828;margin:0 8px 0 -8px;}");
  21. GM_addStyle(".BCEs {text-align:left; float:left; margin-left:-15px; margin-right:35px;}");
  22.  
  23. //記錄最後使用的留言排列順序
  24. var BHCOA;
  25. var BHCO = GM_getValue("BHCO",false);
  26. var rk = GM_getValue("BHCO",false);
  27. var BHCNW = GM_getValue("BHCNW",false);
  28. var BHCNE = GM_getValue("BHCNE",true);
  29. var oldextendComment = unsafeWindow.extendComment;
  30. var oldfoldedComment = unsafeWindow.foldedComment;
  31. var oldforumShowAllMedia = unsafeWindow.forumShowAllMedia;
  32. //在原函式 extendComment 中加入新功能
  33. function extendComment(bsn,snB){
  34. var cptext = "Commendlist_"+snB;
  35. var where = "showoldCommend_"+snB;
  36. var cptmp = unsafeWindow.document.getElementById(cptext).getElementsByClassName("c-reply__item");
  37. var ntmp = parseInt(unsafeWindow.document.getElementById(where).innerHTML.substring(42))+cptmp.length;
  38. oldextendComment(bsn,snB);
  39. BHCWait(cptmp,ntmp,unsafeWindow.document.getElementById(where).parentElement.firstElementChild.firstElementChild.innerHTML.substring(5));
  40. BHCOA = BHCO;
  41. }
  42. //在原函式 foldedComment 中加入新功能
  43. function foldedComment(snB){
  44. oldfoldedComment(snB);
  45. var cptext = "Commendlist_"+snB;
  46. var where = "showoldCommend_"+snB;
  47. var cptmp = unsafeWindow.document.getElementById(cptext).getElementsByClassName("c-reply__item");
  48. if((parseInt(cptmp[0].id.substring(15))>parseInt(cptmp[1].id.substring(15)) && unsafeWindow.document.getElementById(where).parentElement.firstElementChild.firstElementChild.innerHTML.substring(5) == "↑")||(parseInt(cptmp[0].id.substring(15))<parseInt(cptmp[1].id.substring(15)) && unsafeWindow.document.getElementById(where).parentElement.firstElementChild.firstElementChild.innerHTML.substring(5) == "↓")){
  49. CommentOrder(cptmp,false);
  50. CommentAccountName(cptmp,true);
  51. }
  52. else{
  53. CommentOrder(cptmp,true);
  54. CommentAccountName(cptmp,true);
  55. }
  56. }
  57. //開啟所有舊留言,在讀取完留言後進行新功能
  58. function BHCWait(cps,num,ud){
  59. if(cps.length<num && cps.length<6)
  60. window.setTimeout(function(){unsafeWindow.BHCWait(cps,num,ud)}, 50);
  61. else {
  62. if(ud=="↑"){
  63. CommentOrder(cps,true,num);
  64. CommentAccountName(cps,true);
  65. }
  66. else{
  67. CommentOrder(cps,false,num);
  68. CommentAccountName(cps,true);
  69. }
  70. }
  71. }
  72. //在原函式 forumShowAllMedia 中加入新功能
  73. forumShowAllMedia = function (a){
  74. GamerChangeAllBtnToClose();
  75. var BHAA = unsafeWindow.document.getElementsByTagName("a");
  76. for(i = 0;i<BHAA.length;i++){
  77. if(BHAA[i].name == "attachMovieName"){
  78. BHAA[i].className = "";
  79. }
  80. }
  81. return oldforumShowAllMedia(a);
  82. }
  83. //留言加入樓數、排列順序
  84. function CommentOrder(BHCA,rkey,num){
  85. var l;
  86. if(num && num>1000)
  87. l=num-1000;
  88. else
  89. l=0;
  90. var k = BHCA.length;
  91. if(k>0){
  92. var nodetmp1,nodetmp2,nodeIdtmp,nodeNametmp,j,m,nodeid,nodeName,showtmp;
  93. var SA = BHCA[0].parentElement.parentElement.firstElementChild.getElementsByTagName("span");
  94. if(SA.length > 0 && SA[0].parentElement.className == "more-reply"){
  95. m = parseInt(SA[0].innerHTML.substring(2));
  96. }
  97. else
  98. m = l;
  99. for(j = 0;j<parseInt(k/2);j++){
  100. if(BHCA[j].firstElementChild.tagName == "BUTTON" || BHCA[j].firstElementChild.tagName == "button"){
  101. var namenode1 = unsafeWindow.document.createElement("span");
  102. var namenode2 = unsafeWindow.document.createElement("span");
  103. var newnode1 = unsafeWindow.document.createElement("span");
  104. var newnode2 = unsafeWindow.document.createElement("span");
  105. namenode1.innerHTML = "&nbsp(" + BHCA[j].lastElementChild.children[0].innerHTML + ")";
  106. namenode2.innerHTML = "&nbsp(" + BHCA[k-j-1].lastElementChild.children[0].innerHTML + ")";
  107. namenode1.className = "BCEn";
  108. namenode2.className = "BCEn";
  109. newnode1.innerHTML = (j+1+m) + "&nbsp:";
  110. newnode2.innerHTML = (k-j+m) + "&nbsp:";
  111. newnode1.className = "BCEf";
  112. newnode2.className = "BCEf";
  113. newnode1.setAttribute("nickname",BHCA[j].lastElementChild.children[0].innerHTML);
  114. newnode2.setAttribute("nickname",BHCA[k-j-1].lastElementChild.children[0].innerHTML);
  115. newnode1.setAttribute("account",BHCA[j].lastElementChild.children[0].href.substring(26));
  116. newnode2.setAttribute("account",BHCA[k-j-1].lastElementChild.children[0].href.substring(26));
  117. BHCA[j].insertBefore(newnode1,BHCA[j].children[0]);
  118. BHCA[j].lastElementChild.insertBefore(namenode1,BHCA[j].lastElementChild.children[1]);
  119. BHCA[k-j-1].insertBefore(newnode2,BHCA[k-j-1].children[0]);
  120. BHCA[k-j-1].lastElementChild.insertBefore(namenode2,BHCA[k-j-1].lastElementChild.children[1]);
  121. }
  122. if(rkey){
  123. nodetmp1 = BHCA[j].cloneNode(true);
  124. nodetmp2 = BHCA[k-j-1].cloneNode(true);
  125. BHCA[j].parentElement.replaceChild(nodetmp2,BHCA[j]);
  126. BHCA[k-j-1].parentElement.replaceChild(nodetmp1,BHCA[k-j-1]);
  127. }
  128. }
  129. if(j == (k-j-1) && (BHCA[j].firstElementChild.tagName == "BUTTON" || BHCA[j].children[0].tagName == "button")){
  130. var namenode3 = unsafeWindow.document.createElement("span");
  131. var newnode3 = unsafeWindow.document.createElement("span");
  132. newnode3.innerHTML = (j+1+m) + "&nbsp:";
  133. newnode3.className = "BCEf";
  134. newnode3.setAttribute("nickname",BHCA[j].lastElementChild.children[0].innerHTML);
  135. newnode3.setAttribute("account",BHCA[j].lastElementChild.children[0].href.substring(26));
  136. namenode3.innerHTML = "&nbsp(" + BHCA[j].lastElementChild.children[0].innerHTML + ")";
  137. namenode3.className = "BCEn";
  138. BHCA[j].insertBefore(newnode3,BHCA[j].children[0]);
  139. BHCA[j].lastElementChild.insertBefore(namenode3,BHCA[j].lastElementChild.children[1]);
  140. }
  141. }
  142. }
  143. //變更留言者帳號、暱稱
  144. function CommentAccountName(BHCA,check){
  145. var k = BHCA.length;
  146. if(k>0){
  147. var j,AN,NN,sk;
  148. if(BHCNW){
  149. if(BHCNE)
  150. sk = 1;
  151. else
  152. sk = 2;
  153. }
  154. else{
  155. if(BHCNE)
  156. sk = 0;
  157. else
  158. sk = 3;
  159. }
  160. if(check){
  161. var Ctmp = BHCA[0].parentElement.parentElement.getElementsByClassName("c-reply__head nocontent");
  162. if(Ctmp.length > 0)
  163. switch(sk){
  164. case 1:
  165. Ctmp[0].children[1].children[0].innerHTML = "帳號(暱稱)";
  166. break;
  167. case 2:
  168. Ctmp[0].children[1].children[0].innerHTML = "帳號";
  169. break;
  170. case 3:
  171. Ctmp[0].children[1].children[0].innerHTML = "頭像";
  172. break;
  173. default:
  174. Ctmp[0].children[1].children[0].innerHTML ="暱稱";
  175. }
  176. }
  177. for(j = 0;j<k;j++){
  178. var AC = BHCA[j].getElementsByClassName("reply-content__user");
  179. var AP = BHCA[j].getElementsByClassName("reply-avatar user--sm")
  180. NN = BHCA[j].children[0].getAttribute("nickname");
  181. AN = BHCA[j].children[0].getAttribute("account");
  182. switch(sk){
  183. case 1:
  184. AC[0].innerHTML = AN;
  185. AC[0].title = AN;
  186. AC[0].nextElementSibling.style = "display:inline-block !important;";
  187. AP[0].style = "display:none !important;";
  188. break;
  189. case 2:
  190. AC[0].innerHTML = AN;
  191. AC[0].title = NN;
  192. AC[0].nextElementSibling.style = "display:none !important;";
  193. AP[0].style = "display:none !important;";
  194. break;
  195. case 3:
  196. AC[0].innerHTML = NN;
  197. AC[0].title = AN;
  198. AC[0].nextElementSibling.style = "display:none !important;";
  199. AP[0].style = "display:block !important;";
  200. break;
  201. default:
  202. AC[0].innerHTML = NN;
  203. AC[0].title = AN;
  204. AC[0].nextElementSibling.style = "display:none !important;";
  205. AP[0].style = "display:none !important;";
  206. }
  207. }
  208. }
  209. }
  210.  
  211. //調整留言排列順序
  212. function GamerCommentReverse(event){
  213. var BHDivs =(event) ? event.currentTarget.parentElement.parentElement.getElementsByTagName("div") : unsafeWindow.document.getElementsByTagName("div");
  214. var ek = (event) ? true : false;
  215. if(event){
  216. rk = (rk) ? false : true;
  217. BHCO = rk;
  218. if(event.currentTarget.children[0].innerHTML == "↑留言順序↑")
  219. event.currentTarget.children[0].innerHTML = "↓留言順序↓";
  220. else
  221. event.currentTarget.children[0].innerHTML = "↑留言順序↑" ;
  222. GM_setValue("BHCO",rk);
  223. }
  224. for(i = 0;i < BHDivs.length;i++){
  225. var SC = 0;
  226. if(BHDivs[i].id.substring(0,11) == "Commendlist"){
  227. var BHDivCA = BHDivs[i].getElementsByClassName("c-reply__item");
  228. CommentOrder(BHDivCA,ek||rk);
  229. }
  230. }
  231. }
  232. //切換直接顯示留言者帳號
  233. function GamerCommentNameSwitch(event){
  234. var ktmp;
  235. var BHDivs =(event) ? event.currentTarget.parentElement.parentElement.getElementsByTagName("div") : unsafeWindow.document.getElementsByTagName("div");
  236. if(event){
  237. if(BHCNW){
  238. if(BHCNE)
  239. BHCNE = false;
  240. else{
  241. BHCNW = false ;
  242. BHCNE = true;
  243. }
  244. }
  245. else{
  246. if(BHCNE){
  247. BHCNW = false;
  248. BHCNE = false;
  249. }
  250. else{
  251. BHCNW = true;
  252. BHCNE = true;
  253. }
  254. }
  255. if(BHCNW){
  256. if(BHCNE)
  257. event.currentTarget.children[0].innerHTML = "帳號(暱稱)";
  258. else
  259. event.currentTarget.children[0].innerHTML = "帳號";
  260. }
  261. else{
  262. if(BHCNE)
  263. event.currentTarget.children[0].innerHTML = "暱稱";
  264. else
  265. event.currentTarget.children[0].innerHTML = "頭像";
  266. }
  267. GM_setValue("BHCNW",BHCNW);
  268. GM_setValue("BHCNE",BHCNE);
  269. }
  270. for(i = 0;i < BHDivs.length;i++){
  271. if(BHDivs[i].id.substring(0,11) == "Commendlist"){
  272. var BHCs = BHDivs[i].getElementsByClassName("c-reply__item");
  273. CommentAccountName(BHCs);
  274. }
  275. }
  276. }
  277. //更改開啟圖像為關閉圖像
  278. function GamerChangeBtnToClose(BE){
  279. if(BE.className == "ef-btn btn-loadpic"){
  280. BE.className = "ef-btn btn-loadpic is-cancel";
  281. BE.title = "關閉本篇文章中全部開啟的圖片及影像";
  282. BE.removeEventListener('click',unsafeWindow.GamerOpenImage,true);
  283. }
  284. BE.addEventListener('click',unsafeWindow.GamerCloseImage,true);
  285. }
  286. //更改關閉圖像為開啟圖像
  287. function GamerChangeBtnToOpen (BE){
  288. if(BE.className = "ef-btn btn-loadpic is-cancel"){
  289. BE.className = "ef-btn btn-loadpic";
  290. BE.title = "開啟本篇文章中全部的圖片及影像";
  291. BE.removeEventListener('click',unsafeWindow.GamerCloseImage,true);
  292. }
  293. BE.addEventListener('click',unsafeWindow.GamerOpenImage,true);
  294. }
  295. //點擊開啟全部圖像時,更改單篇開啟圖像為關閉圖像
  296. function GamerChangeAllBtnToClose(){
  297. var BHDA = unsafeWindow.document.getElementsByTagName("div");
  298. var i;
  299. for(i = 0;i < BHDA.length;i++){
  300. if(BHDA[i].className == "c-post__header__tools" && BHDA[i].children.length > 0){
  301. GamerChangeBtnToClose(BHDA[i].lastElementChild);
  302. }
  303. }
  304. }
  305. //開啟單篇文章的圖片、影像
  306. function GamerOpenImage(event){
  307. var EDivA = event.currentTarget.parentElement.parentElement.nextElementSibling.getElementsByTagName("div");
  308. GamerChangeBtnToClose(event.currentTarget);
  309. var i,j,Mid;
  310. for(i = 0;i < EDivA.length;i++){
  311. if(EDivA[i].className == "c-article__content"){
  312. var EAA = EDivA[i].getElementsByTagName("a");
  313. if(EAA){
  314. for (j = 0; j < EAA.length; j++) {
  315. if(EAA[j].name == "attachImgName")
  316. unsafeWindow.attachIMG(EAA[j], 'show');
  317. if(EAA[j].name == "attachMovieName"){
  318. EAA[j].className = "";
  319. unsafeWindow.attachMOVIE(EAA[j]);
  320. }
  321. }
  322. }
  323. }
  324. }
  325. }
  326. //關閉單篇文章的圖片、影像
  327. function GamerCloseImage(event){
  328. var EDivA = event.currentTarget.parentElement.parentElement.nextElementSibling.getElementsByTagName("div");
  329. GamerChangeBtnToOpen(event.currentTarget);
  330. var i,j;
  331. for(i = 0;i < EDivA.length;i++){
  332. if(EDivA[i].className == "c-article__content"){
  333. var EAA = EDivA[i].getElementsByTagName("a");
  334. if(EAA){
  335. for (j = 0; j < EAA.length; j++) {
  336. if(EAA[j].name == "attachImgName"){
  337. EAA[j].innerHTML = '<i class="material-icons"></i><span>開啟圖片</span>';
  338. EAA[j].removeAttribute("data-expanded");
  339. EAA[j].className = "loadpic";
  340. }
  341. if(EAA[j].name == "attachMovieName"){
  342. EAA[j].href = EAA[j].children[0].children[0].getAttribute("data-src");
  343. EAA[j].innerHTML = '<i class="material-icons"></i><span>開啟影片</span>';
  344. EAA[j].className = "loadpic";
  345. }
  346. }
  347. }
  348. }
  349. }
  350. }
  351. //單篇文章的影像、圖片若已全部開啟,將開啟圖像改為關閉圖像
  352. function GamerImgOpenCheck(event){
  353. var i,ImgOpenF = true;
  354. var CTAA;
  355. if(event.currentTarget.parentElement.className == "c-article__content")
  356. CTAA = event.currentTarget.parentElement.getElementsByTagName("a");
  357. else if(event.currentTarget.parentElement.parentElement.className == "c-article__content")
  358. CTAA = event.currentTarget.parentElement.parentElement.getElementsByTagName("a");
  359. else if(event.currentTarget.parentElement.parentElement.parentElement.className == "c-article__content")
  360. CTAA = event.currentTarget.parentElement.parentElement.parentElement.getElementsByTagName("a");
  361. for(i = 0; i < CTAA.length; i++){
  362. if((CTAA[i].name == "attachImgName" || CTAA[i].name == "attachMovieName") && (CTAA[i].lastElementChild.tagName == "span" || CTAA[i].lastElementChild.tagName == "SPAN")){
  363. ImgOpenF = false;
  364. break;
  365. }
  366. }
  367. if(ImgOpenF){
  368. var CTC,CTPNA = event.currentTarget.parentElement.parentElement.parentElement.parentElement.parentElement;
  369. if(CTPNA.className != "c-post__body")
  370. CTPNA = event.currentTarget.parentElement.parentElement.parentElement.parentElement;
  371. if(CTPNA.className != "c-post__body")
  372. CTPNA = event.currentTarget.parentElement.parentElement.parentElement;
  373. CTC = CTPNA.previousElementSibling.getElementsByClassName("c-post__header__tools");
  374. GamerChangeBtnToClose(CTC[0].children[0]);
  375. }
  376. }
  377. //加入改變留言順序的連結點
  378. function BHCES(){
  379. unsafeWindow.BHCWait = exportFunction(BHCWait,unsafeWindow);
  380. unsafeWindow.extendComment = exportFunction(extendComment,unsafeWindow);
  381. unsafeWindow.foldedComment = exportFunction(foldedComment,unsafeWindow);
  382. unsafeWindow.GamerCommentReverse = exportFunction(GamerCommentReverse,unsafeWindow);
  383. unsafeWindow.GamerCommentNameSwitch = exportFunction(GamerCommentNameSwitch,unsafeWindow);
  384. unsafeWindow.forumShowAllMedia = exportFunction(forumShowAllMedia,unsafeWindow);
  385. unsafeWindow.GamerOpenImage = exportFunction(GamerOpenImage,unsafeWindow);
  386. unsafeWindow.GamerCloseImage = exportFunction(GamerCloseImage,unsafeWindow);
  387. unsafeWindow.GamerImgOpenCheck = exportFunction(GamerImgOpenCheck,unsafeWindow);
  388. GamerCommentReverse();
  389. GamerCommentNameSwitch();
  390. var BHDivA = unsafeWindow.document.getElementsByTagName("div");
  391. for(i = 0;i < BHDivA.length;i++){
  392. if(BHDivA[i].className == "c-post__footer c-reply"){
  393. var j,pchecked1 = false,pchecked2 = false,pchecked3 = false;
  394. var tmp = (BHCO) ? "↑" : "↓";
  395. var ANtmp
  396. if(BHCNW)
  397. ANtmp = (BHCNE) ? "帳號(暱稱)" : "帳號";
  398. else
  399. ANtmp = (BHCNE) ? "暱稱" : "頭像";
  400. for(j = 0;j < BHDivA[i].children.length;j++){
  401. if(BHDivA[i].children[j].className == "c-reply__head nocontent")
  402. pchecked1 = true;
  403. if(BHDivA[i].children[j].id.substring(0,11) == "Commendlist" && BHDivA[i].children[j].children.length > 2)
  404. pchecked2 = true;
  405. else if(BHDivA[i].children[j].id.substring(0,11) == "Commendlist" && BHDivA[i].children[j].children.length > 0)
  406. pchecked3 = true;
  407. }
  408. if(!pchecked1){
  409. if(pchecked2){
  410. BHDivA[i].innerHTML = '<div class="c-reply__head nocontent"><span class="BCEs"><a href ="javascript:;" title="變換留言的顯示順序">'+tmp+'留言順序'+tmp+'</a></span><span class="BCEs"><a href ="javascript:;" title="切換顯示留言者的帳號、暱稱">'+ANtmp+'</a></span></div>' + BHDivA[i].innerHTML;
  411. BHDivA[i].children[0].children[0].addEventListener('click',unsafeWindow.GamerCommentReverse,true);
  412. BHDivA[i].children[0].children[1].addEventListener('click',unsafeWindow.GamerCommentNameSwitch,true);
  413. }
  414. else if(pchecked3){
  415. BHDivA[i].innerHTML = '<div class="c-reply__head nocontent"><span class="BCEs"><a href ="javascript:;" title="切換顯示留言者的帳號、暱稱">'+ANtmp+'</a></span></div>' + BHDivA[i].innerHTML;
  416. BHDivA[i].children[0].children[0].addEventListener('click',unsafeWindow.GamerCommentNameSwitch,true);
  417. }
  418. }
  419. else{
  420. BHDivA[i].children[0].innerHTML = '<span class="BCEs"><a href ="javascript:;" title="變換留言的顯示順序">'+tmp+'留言順序'+tmp+'</a></span><span class="BCEs"><a href ="javascript:;" title="切換顯示留言者的帳號、暱稱">'+ANtmp+'</a></span>' + BHDivA[i].children[0].innerHTML;
  421. BHDivA[i].children[0].children[0].addEventListener('click',unsafeWindow.GamerCommentReverse,true);
  422. BHDivA[i].children[0].children[1].addEventListener('click',unsafeWindow.GamerCommentNameSwitch,true);
  423. }
  424. }
  425. //修改開啟圖片按鈕的連結點
  426. if(BHDivA[i].className == "c-post__header__tools"){
  427. BHDivA[i].innerHTML = "";
  428. var BHDivAA = BHDivA[i].parentElement.parentElement.getElementsByTagName("div");
  429. var k,l,Iflag = false,Oflag = true;
  430. for(k = 0;k < BHDivAA.length;k++){
  431. if(BHDivAA[k].className == "c-article__content"){
  432. var EAA = BHDivAA[k].getElementsByTagName("a");
  433. if(EAA){
  434. for(l = 0; l < EAA.length; l++){
  435. if(EAA[l].name == "attachImgName" || EAA[l].name == "attachMovieName"){
  436. Iflag = true;
  437. EAA[l].addEventListener('click',unsafeWindow.GamerImgOpenCheck,false);
  438. if(EAA[l].lastElementChild.tagName == "span" || EAA[l].lastElementChild.tagName == "SPAN")
  439. Oflag = false;
  440. }
  441. }
  442. }
  443. }
  444. }
  445. if(Iflag){
  446. var newnode = unsafeWindow.document.createElement("button");
  447. if(Oflag){
  448. newnode.title = "關閉本篇文章中全部開啟的圖片及影像";
  449. newnode.className = "ef-btn btn-loadpic is-cancel";
  450. newnode.addEventListener('click',unsafeWindow.GamerCloseImage,true);
  451. }
  452. else{
  453. newnode.title = "開啟本篇文章中全部的圖片及影像";
  454. newnode.className = "ef-btn btn-loadpic";
  455. newnode.addEventListener('click',unsafeWindow.GamerOpenImage,true);
  456. }
  457. newnode.innerHTML='<div class="ef-btn__effect"><i class="icon-font">圖</i></div>';
  458. BHDivA[i].appendChild(newnode);
  459. }
  460. }
  461. }
  462. //將原有的開啟所有圖片按鈕移到上面的浮動功能列
  463. var newLi = unsafeWindow.document.createElement("li");
  464. newLi.innerHTML = '<a href="javascript:;" title="開啟整串文章所有的圖片及影像">圖像全開</a>';
  465. newLi.addEventListener('click',unsafeWindow.forumShowAllMedia,true);
  466. var BHMenu = unsafeWindow.document.getElementById("BH-menu-path");
  467. var BHMenuULA = BHMenu.getElementsByTagName("ul");
  468. BHMenuULA[0].insertBefore(newLi,BHMenuULA[0].children[6]);
  469. }
  470. BHCES();