Tieba Enhance

贴吧小尾巴, 坟贴提醒, 去除跳转等功能

  1. // ==UserScript==
  2. // @name Tieba Enhance
  3. // @author lkytal
  4. // @namespace Lkytal
  5. // @homepage http://lkytal.github.io/
  6. // @homepageURL https://lkytal.github.io/GM
  7. // @description 贴吧小尾巴, 坟贴提醒, 去除跳转等功能
  8. // @include http://tieba.baidu.com/*
  9. // @include https://tieba.baidu.com/*
  10. // @version 6.2.3
  11. // @require https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js
  12. // @icon https://github.com/lkytal/GM/raw/master/icons/tieba.png
  13. // @noframes
  14. // @license AGPL
  15. // @grant unsafeWindow
  16. // @grant GM_addStyle
  17. // @grant GM_xmlhttpRequest
  18. // @grant GM_getValue
  19. // @grant GM_setValue
  20. // @grant GM_listValues
  21. // @grant GM_deleteValue
  22. // @run-at document-end
  23. // @charset UTF-8
  24. // @supportURL https://github.com/lkytal/GM/issues
  25. // ==/UserScript==
  26.  
  27. "use strict";
  28.  
  29. var AddTail,
  30. CheckPost,
  31. TailInit,
  32. TiebaInit,
  33. addTiebaCSS,
  34. clearLink,
  35. log,
  36. open_setting_window,
  37. tiebaData,
  38. hasProp = {}.hasOwnProperty;
  39.  
  40. window.$ = window.jQuery = jQuery.noConflict(true);
  41.  
  42. tiebaData = {
  43. StopPost: 0,
  44. count: 0
  45. };
  46.  
  47. log = function (msg) {
  48. var text;
  49. tiebaData.count += 1;
  50. text = "hit " + tiebaData.count + " : " + msg;
  51. return console.log(text);
  52. };
  53.  
  54. //setting win
  55. open_setting_window = function () {
  56. var UpdateText, ref, ref1, x;
  57. $('setting_shadow').remove();
  58. $('body').append("<div id=\"setting_shadow\" style=\"display:none\"> <div id=\"setting_window\"> <div id=\"setting_reset\" class=\"setting_btn_inside\">重置</div> <div id=\"setting_save\" class=\"setting_btn_inside\">保存</div> <div id=\"setting_close\" class=\"setting_title setting_btn_inside\">设置</div> <p class=\"setting_hiding_sp\"></p> <div id=\"setting_out_div\"> <div id=\"fentie_open\" class=\"setting_sp_btn\">坟贴检测</div> <div class=\"setting_sp\"> <p class=\"setting_hide\"></p><span>超过</span> <input class=\"setting_input\" type=\"number\" id=\"fentie_date\"></input><span>天的帖子视为坟贴</span> <div id=\"fentie_forbidden\" class=\"setting_sp_btn\">坟贴禁回</div> </div> <p class=\"setting_hide sp\"></p> <div id=\"tail_open\" class=\"setting_sp_btn\">小尾巴</div> <div id=\"tail_select\"> <div id=\"tail_select_text\" contenteditable=\"true\"></div> <div id=\"tail_option_box\"></div> <div id=\"tail_type\"> <div id=\"tail_type_text\"></div> <div id=\"tail_type_box\"> <div class=\"tail_type_option\">html</div> <div class=\"tail_type_option\">javascript</div> </div> </div> <div id=\"tail_save\" class=\"setting_btn_inside\">保存当前尾巴</div> <div id=\"tail_new\" class=\"setting_btn_inside\">新建尾巴</div> <div id=\"tail_delete\" class=\"setting_btn_inside\">删除尾巴</div> </div> <div class=\"setting_sp\"> <textarea class=\"setting_textarea\" id=\"tail_data\"></textarea><span>预览</span> <div class=\"setting_textarea\" id=\"tail_data_show\"></div> <p class=\"hiding_margin\" style=\"width:1px;height:20px;\"></p> </div> </div> </div> </div>");
  59. //读取设置
  60. $("#fentie_date")[0].value = tiebaData.fentie_date;
  61. if (!tiebaData.fentie_open) {
  62. $("#fentie_open").attr("class", "setting_sp_btn close");
  63. $("#fentie_open + div").css("display", "none");
  64. }
  65. if (!tiebaData.fentie_forbidden) {
  66. $("#fentie_forbidden").attr("class", "setting_sp_btn close");
  67. }
  68. if (!tiebaData.tail_open) {
  69. $("#tail_open").attr("class", "setting_sp_btn close");
  70. $("#tail_select,#tail_select + div").css("display", "none");
  71. }
  72. ref = tiebaData.tail_data;
  73. for (x in ref) {
  74. if (!hasProp.call(ref, x)) continue;
  75. $("#tail_select_text")[0].innerHTML = x;
  76. $("#tail_select_text").attr("new", "0");
  77. $("#tail_select_text").attr("oname", x);
  78. $("#tail_data")[0].value = tiebaData.tail_data[x].split("!分隔!")[0];
  79. $("#tail_type_text")[0].innerHTML = tiebaData.tail_data[x].split("!分隔!")[1];
  80. break;
  81. }
  82. ref1 = tiebaData.tail_data;
  83. for (x in ref1) {
  84. if (!hasProp.call(ref1, x)) continue;
  85. $("#tail_option_box").append("<div class=\"tail_option\">" + x + "</div>");
  86. }
  87. UpdateText = function () {
  88. var e;
  89. if ($("#tail_type_text")[0].innerHTML === "javascript") {
  90. try {
  91. $("#tail_data_show")[0].innerHTML = eval($("#tail_data")[0].value);
  92. } catch (error) {
  93. e = error;
  94. $("#tail_data_show")[0].innerHTML = e;
  95. }
  96. } else {
  97. if ($("#tail_type_text")[0].innerHTML === "html") {
  98. $("#tail_data_show")[0].innerHTML = $("#tail_data")[0].value;
  99. }
  100. }
  101. };
  102. UpdateText();
  103. $(".tail_option").click(function () {
  104. $("#tail_select_text")[0].innerHTML = this.innerHTML;
  105. $("#tail_select_text").attr("new", "0");
  106. $("#tail_select_text").attr("oname", this.innerHTML);
  107. $("#tail_data")[0].value = tiebaData.tail_data[this.innerHTML].split("!分隔!")[0];
  108. $("#tail_type_text")[0].innerHTML = tiebaData.tail_data[this.innerHTML].split("!分隔!")[1];
  109. return UpdateText();
  110. });
  111. $(".tail_type_option").click(function () {
  112. $("#tail_type_text")[0].innerHTML = this.innerHTML;
  113. return UpdateText();
  114. });
  115. $("#tail_data").keyup(function () {
  116. return UpdateText();
  117. });
  118. $("#setting_shadow").fadeIn(400);
  119. //按钮
  120. $("#setting_close").mouseenter(function () {
  121. return this.innerHTML = "关闭";
  122. });
  123. $("#setting_close").mouseleave(function () {
  124. return this.innerHTML = "设置";
  125. });
  126. //$("#setting_window").click (e) -> e.stopPropagation()
  127. $("#setting_close").click(function () {
  128. return $("#setting_shadow").fadeOut(400, function () {
  129. return $("#setting_shadow").remove();
  130. });
  131. });
  132. $("#setting_reset").click(function () {
  133. var j, key, len, ref2;
  134. if (confirm("确定重置设置吗(会刷新页面)")) {
  135. ref2 = GM_listValues();
  136. for (j = 0, len = ref2.length; j < len; j++) {
  137. key = ref2[j];
  138. GM_deleteValue(key);
  139. }
  140. window.location.reload();
  141. }
  142. });
  143. $("#fentie_open").click(function () {
  144. $("#fentie_open + div").slideToggle("slow");
  145. if (tiebaData.fentie_open) {
  146. tiebaData.fentie_open = 0;
  147. return $("#fentie_open").attr("class", "setting_sp_btn close");
  148. } else {
  149. tiebaData.fentie_open = 1;
  150. return $("#fentie_open").attr("class", "setting_sp_btn");
  151. }
  152. });
  153. $("#fentie_forbidden").click(function () {
  154. if (tiebaData.fentie_forbidden) {
  155. tiebaData.fentie_forbidden = 0;
  156. $("#fentie_forbidden").attr("class", "setting_sp_btn close");
  157. } else {
  158. tiebaData.fentie_forbidden = 1;
  159. $("#fentie_forbidden").attr("class", "setting_sp_btn");
  160. }
  161. });
  162. $("#tail_open").click(function () {
  163. if (tiebaData.tail_open) {
  164. tiebaData.tail_open = 0;
  165. $("#tail_select,#tail_select + div").toggle("slow");
  166. $("#tail_option_box").hide(400);
  167. $("#tail_type_box").hide(400);
  168. $("#tail_open").attr("class", "setting_sp_btn close");
  169. } else {
  170. tiebaData.tail_open = 1;
  171. $("#tail_select,#tail_select + div").slideToggle("slow");
  172. $("#tail_open").attr("class", "setting_sp_btn");
  173. }
  174. });
  175. $("#tail_select_text + div").css("display", "none");
  176. $("#tail_select_text").click(function () {
  177. var hideSelect;
  178. $("#tail_select_text + div").show(400);
  179. $(document).bind("click", hideSelect = function (e) {
  180. if (e.target.id !== "tail_select_text" && e.target.id !== "tail_open") {
  181. $("#tail_select_text + div").hide(400);
  182. $(document).unbind("click", hideSelect);
  183. }
  184. });
  185. });
  186. $("#tail_type_text + div").css("display", "none");
  187. $("#tail_type_text").click(function () {
  188. var hideType;
  189. $("#tail_type_text + div").show(400);
  190. $(document).bind("click", hideType = function (e) {
  191. if (e.target.id !== "tail_type_text" && e.target.id !== "tail_open") {
  192. $("#tail_type_text + div").hide(400);
  193. $(document).unbind("click", hideType);
  194. }
  195. });
  196. });
  197. $("#tail_new").click(function () {
  198. $("#tail_select_text").attr("new", "1");
  199. $("#tail_select_text").attr("oname", "");
  200. $("#tail_select_text")[0].textContent = "New" + Math.random().toString().substr(3, 3);
  201. $("#tail_data")[0].value = "<br>小尾巴脚本Tieba Enhance:<br>https://git.oschina.net/coldfire/GM";
  202. $("#tail_type_text")[0].textContent = "html";
  203. });
  204. $("#tail_delete").click(function () {
  205. var oname, ref2, ref3;
  206. oname = $("#tail_select_text")[0].getAttribute("oname");
  207. if ($("#tail_select_text")[0].getAttribute("new") !== 1) {
  208. delete tiebaData.tail_data[oname];
  209. }
  210. ref2 = tiebaData.tail_data;
  211. for (x in ref2) {
  212. if (!hasProp.call(ref2, x)) continue;
  213. $("#tail_select_text")[0].innerHTML = x;
  214. $("#tail_select_text").attr("new", "0");
  215. $("#tail_select_text").attr("oname", x);
  216. $("#tail_data")[0].value = tiebaData.tail_data[x].split("!分隔!")[0];
  217. $("#tail_type_text")[0].innerHTML = tiebaData.tail_data[x].split("!分隔!")[1];
  218. break;
  219. }
  220. //save
  221. GM_setValue("tail_data", JSON.stringify(tiebaData.tail_data));
  222. //reload
  223. $("#tail_option_box").empty();
  224. ref3 = tiebaData.tail_data;
  225. for (x in ref3) {
  226. if (!hasProp.call(ref3, x)) continue;
  227. tiebaData.tail_data[x] = tiebaData.tail_data[x].replace(/!逗号!/g, ",").replace(/!引号!/g, "\"");
  228. $("#tail_option_box").append("<div class=\"tail_option\">" + x + "</div>");
  229. }
  230. UpdateText();
  231. });
  232. $("#tail_save").click(function () {
  233. var name, oname, ref2, ref3;
  234. name = $("#tail_select_text")[0].innerHTML;
  235. oname = $("#tail_select_text")[0].getAttribute("oname");
  236. if ($("#tail_select_text")[0].getAttribute("new") === 1) {
  237. if (tiebaData.tail_data[name] != null) {
  238. return alert("该尾巴已存在!");
  239. } else {
  240. tiebaData.tail_data[name] = $("#tail_data")[0].value + "!分隔!" + $("#tail_type_text")[0].textContent;
  241. }
  242. } else {
  243. if (name === oname) {
  244. tiebaData.tail_data[name] = $("#tail_data")[0].value + "!分隔!" + $("#tail_type_text")[0].textContent;
  245. } else {
  246. delete tiebaData.tail_data[oname];
  247. tiebaData.tail_data[name] = $("#tail_data")[0].value + "!分隔!" + $("#tail_type_text")[0].textContent;
  248. }
  249. }
  250. ref2 = tiebaData.tail_data;
  251. for (x in ref2) {
  252. if (!hasProp.call(ref2, x)) continue;
  253. tiebaData.tail_data[x] = tiebaData.tail_data[x].replace(/,/g, "!逗号!").replace(/"/g, "!引号!");
  254. }
  255. GM_setValue("tail_data", JSON.stringify(tiebaData.tail_data));
  256. //reload
  257. $("#tail_option_box").empty();
  258. ref3 = tiebaData.tail_data;
  259. for (x in ref3) {
  260. if (!hasProp.call(ref3, x)) continue;
  261. tiebaData.tail_data[x] = tiebaData.tail_data[x].replace(/!逗号!/g, ",").replace(/!引号!/g, "\"");
  262. $("#tail_option_box").append("<div class=\"tail_option\">" + x + "</div>");
  263. }
  264. UpdateText();
  265. });
  266. //保存部分
  267. $("#setting_save").click(function () {
  268. tiebaData.fentie_date = $("#fentie_date")[0].value;
  269. GM_setValue("fentie_open", tiebaData.fentie_open);
  270. GM_setValue("fentie_date", tiebaData.fentie_date);
  271. GM_setValue("fentie_forbidden", tiebaData.fentie_forbidden);
  272. GM_setValue("tail_open", tiebaData.tail_open);
  273. return $("#setting_shadow").fadeOut(400, function () {
  274. return $("#setting_shadow").remove();
  275. });
  276. });
  277. };
  278.  
  279. //坟贴检测函数
  280. CheckPost = function () {
  281. var date_str, date_time, days, years;
  282. if ($("#j_core_title_wrap").length && tiebaData.fentie_open) {
  283. date_str = $("#j_p_postlist ul.p_tail > li:nth-child(2) > span")[0].textContent;
  284. if (date_str === "1970-01-01 07:00") {
  285. return setTimeout(CheckPost, 500);
  286. }
  287. date_str = date_str.replace(" ", "-").replace(":", "-").split("-");
  288. date_time = new Date(date_str[0], date_str[1] - 1, date_str[2], date_str[3], date_str[4]);
  289. days = Math.round((new Date() - date_time) / 86400000);
  290. if (days >= tiebaData.fentie_date) {
  291. if (days >= 365) {
  292. years = Math.round(days / 365);
  293. days = `${years}年` + (days - years * 365);
  294. }
  295. $("#tb_nav").after(`<div id='NotifyTide'><p>这是一个 ${days} 天的坟贴哦~</p></div>`);
  296. if (tiebaData.fentie_forbidden) {
  297. return tiebaData.StopPost = 1;
  298. }
  299. }
  300. }
  301. };
  302.  
  303. //Tail
  304. AddTail = function (e) {
  305. var currentTail, key, tailList;
  306. if (tiebaData.StopPost === 1) {
  307. if (!confirm("这可能是一个坟贴, 确认要回复么?")) {
  308. return $("#ueditor_replace").empty();
  309. }
  310. }
  311. if (tiebaData.tail_cur === "不使用小尾巴") {
  312. return;
  313. }
  314. if (tiebaData.tail_cur === "随机小尾巴") {
  315. tailList = function () {
  316. var ref, results;
  317. ref = tiebaData.tail_data;
  318. results = [];
  319. for (key in ref) {
  320. if (!hasProp.call(ref, key)) continue;
  321. results.push(key);
  322. }
  323. return results;
  324. }();
  325. tiebaData.tail_cur = tailList[Math.round(Math.random() * tailList.length)];
  326. }
  327. currentTail = tiebaData.tail_data[tiebaData.tail_cur].split("!分隔!");
  328. if (currentTail[1] === "html") {
  329. $("#ueditor_replace").append("<br>" + currentTail[0]);
  330. } else if (currentTail[1] === "javascript") {
  331. $("#ueditor_replace").append("<br>" + eval(currentTail[0]));
  332. }
  333. };
  334.  
  335. TailInit = function () {
  336. var SendBt, i, ref, ref1, x;
  337. if (!tiebaData.tail_open) {
  338. return;
  339. }
  340. if (document.querySelector(".ui_btn.ui_btn_m.j_submit.poster_submit")) {
  341. $("a.j_submit.poster_submit").before("<span id=\"tail_use\"> <span class=\"ui_btn ui_btn_m\"> <span id=\"tail_use_text\"></span> </span> <div id=\"tail_use_box_out\"> <div id=\"tail_use_box\" style=\"display:none;\"></div> </div> </span>");
  342. $("#tail_use_text").click(function () {
  343. return $("#tail_use_box").slideToggle(400);
  344. });
  345. $(document).bind("click", function (e) {
  346. if (e.target.id !== "tail_use_text") {
  347. $("#tail_use_box").slideUp(400);
  348. }
  349. });
  350. if (tiebaData.tail_cur === "不使用小尾巴" || tiebaData.tail_cur === "随机小尾巴") {
  351. $("#tail_use_text")[0].innerHTML = tiebaData.tail_cur;
  352. } else if (typeof tiebaData.tail_data[tiebaData.tail_cur] === "undefined") {
  353. ref = tiebaData.tail_data;
  354. for (i in ref) {
  355. if (!hasProp.call(ref, i)) continue;
  356. if (!(i != null)) {
  357. continue;
  358. }
  359. tiebaData.tail_cur = i;
  360. break;
  361. }
  362. GM_setValue("tail_cur", tiebaData.tail_cur);
  363. $("#tail_use_text")[0].innerHTML = tiebaData.tail_cur;
  364. } else {
  365. $("#tail_use_text")[0].innerHTML = tiebaData.tail_cur;
  366. }
  367. $("#tail_use_box").append("<div class=\"tail_use_option\">不使用小尾巴</div>");
  368. $("#tail_use_box").append("<div class=\"tail_use_option\">随机小尾巴</div>");
  369. ref1 = tiebaData.tail_data;
  370. for (x in ref1) {
  371. if (!hasProp.call(ref1, x)) continue;
  372. $("#tail_use_box").append(`<div class='tail_use_option'>${x}</div>`);
  373. }
  374. $(".tail_use_option").click(function () {
  375. tiebaData.tail_cur = this.innerHTML;
  376. $("#tail_use_text")[0].innerHTML = tiebaData.tail_cur;
  377. GM_setValue("tail_cur", tiebaData.tail_cur);
  378. });
  379. SendBt = document.querySelector("a.j_submit.poster_submit[title=\"Ctrl+Enter快捷发表\"]");
  380. SendBt.addEventListener("click", AddTail, true);
  381. document.onkeydown = function (event) {
  382. if (event.ctrlKey && event.keyCode === 13) {
  383. return AddTail();
  384. }
  385. };
  386. } else {
  387. setTimeout(TailInit, 100);
  388. }
  389. };
  390.  
  391. clearLink = function (event) {
  392. var link, ref, url;
  393. link = event.target;
  394. if (((ref = link.href) != null ? ref.indexOf("http://jump.bdimg.com/safecheck") : void 0) === 0) {
  395. url = link.textContent;
  396. if (url.indexOf("http") !== 0) {
  397. url = "http://" + url;
  398. }
  399. return link.href = url;
  400. }
  401. };
  402.  
  403. TiebaInit = function () {
  404. addTiebaCSS();
  405. tiebaData.fentie_open = GM_getValue("fentie_open", 1);
  406. tiebaData.fentie_date = GM_getValue("fentie_date", 30);
  407. tiebaData.fentie_forbidden = GM_getValue("fentie_forbidden", 1);
  408. tiebaData.tail_open = GM_getValue("tail_open", 1);
  409. tiebaData.tail_cur = GM_getValue("tail_cur", "");
  410. tiebaData.tail_data = JSON.parse(GM_getValue("tail_data", "{\"Default\":\" !分隔!html\"}"));
  411. tiebaData._style_setted = 0;
  412. $("#tb_nav").find("ul:first").append("<li id=\"setting_btn\" class=\"star_nav_tab\"> <div class=\"star_nav_tab_inner\"> <div class=\"space\"> <a style=\"cursor:pointer;-moz-user-select:none;\" class=\"star_nav_ico star_nav_ico_good\">设置</a> </div> </div> </li>");
  413. jQuery("body").on("mouseover", "a", clearLink);
  414. setTimeout(CheckPost, 500);
  415. $("#setting_btn").click(function () {
  416. return open_setting_window();
  417. });
  418. TailInit();
  419. };
  420.  
  421. if (window.self === window.top) {
  422. setTimeout(TiebaInit, 150);
  423. }
  424.  
  425. addTiebaCSS = function () {
  426. return GM_addStyle("#NotifyTide { width: 100%; text-align: center; color: white; font-size: 28px; vertical-align: middle; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; } #NotifyTide p { background: rgba(255, 119, 119, .5); padding: 25px 0px 25px 0px; text-shadow: red 0 0 5px, red 0 0 5px, red 0 0 7px, red 0 0 7px, red 0 0 10px, red 0 0 10px, red 0 0 15px, red 0 0 15px; } #setting_shadow { position: fixed; z-index: 1024000000; bottom: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); -moz-transition: 0.4s; } #setting_window { position: fixed; top: -moz-calc(50% - 270px); top: -webkit-calc(50% - 270px); top: calc(50% - 270px); left: -moz-calc(50% - 300px); left: -webkit-calc(50% - 300px); left: calc(50% - 300px); width: 600px; background: #FFF; box-shadow: 0 0 5px #222; padding: 20px 20px 50px 20px; z-index: 1000000000; } #setting_out_div { overflow-y: scroll; padding: 0 10px 0 0; max-height:500px; } .setting_btn_inside { font-size: 16px; padding: 4px; -moz-user-select: none; cursor: default; } .setting_btn_inside:hover { background: #DDD; } .setting_btn_inside:active { box-shadow: 0 0 3px #999 inset; } #setting_reset { position: absolute; top: 14px; right: 14px; } #setting_save { display: inline-block; position: absolute; right: 15px; bottom: 10px; } .setting_sp_btn { font-size: 12px; padding: 4px; -moz-user-select: none; cursor: default; display: inline-block; position: relative; } .setting_sp_btn.close { background: #DDD; } .setting_sp_btn::before { position: absolute; right: -26px; top: 0; content: \"\"; width: 26px; height: 26px; background: #6B4; -moz-transition: 0.3s; } .setting_sp_btn.close::before { background: #C54; } .setting_sp_btn:hover { background: #DDD; } .setting_sp_btn:active { box-shadow: 0 0 3px #999 inset; } #setting_sp_q_c { margin: 0 0 0 40px !important; } #setting_window .setting_title { font-size: 34px; height: 42px; line-height: 42px; padding: 7px 10px; margin: 0 0 0 -7px; -moz-user-select: none; cursor: default; display: inline-block; } #setting_window p { font-size: 18px; height: 42px; line-height: 50px; -moz-user-select: none; cursor: default; } #setting_window p.setting_hide { height: 10px; line-height: 10px; -moz-user-select: none; cursor: default; } #setting_window p.setting_hide.sp { background: #CCC !important; height: 1px !important; margin: 8px 0 !important; } #setting_window p.setting_hiding_sp { height: 1px; line-height: 1px; -moz-user-select: none; cursor: default; } #setting_window .setting_input { -moz-appearance: none; border: none; background: #DDD; height: 28px; padding: 0px 7px !important; width: 100px; margin: 0 10px 0 0 !important; font-size: 14px !important; } #setting_window span { font-size: 14px !important; margin: 0 10px 0 0 !important; -moz-user-select: none; cursor: default; display: inline-block; } .setting_textarea { -moz-appearance: none !important; border: none; background: #DDD; margin: 10px 0 0 0 !important; padding: 7px !important; width: 550px; height: 100px; -moz-box-sizing: border-box; font-size: 12px !important; } #tail_select { display: inline-block; height: 26px !important; line-height: 26px !important; width: 450px !important; margin: 0px 0 0 40px !important; vertical-align: top !important; text-align: center !important; font-size: 12px !Important; -moz-box-sizing: border-box !Important; position: relative !important; cursor: default !important; } #tail_select_text { height: 26px; float: left; min-width: 100px !important; background: #DDD !important; padding: 0 5px !important; -moz-box-sizing: border-box !Important; } #tail_option_box { float: left; position: absolute !important; bottom: 30px; left: 0; min-width: 100px; background: #EEE !important; box-shadow: 0 0 3px #666 !important; display: inline-block; } .tail_option { padding: 0 8px !important; width: auto !important; font-size: 12px !important; height: 24px !important; line-height: 24px !important; cursor: default !important; } .tail_option:hover { background: #DDD !important; } #tail_type { background: #DDD !important; position: absolute !important; top: 0; right: 0px; } #tail_type_text { width: 80px !important; text-align: center !important; } #tail_type_box { position: absolute !important; width: 80px !important; bottom: 30px; right: 0px; background: #EEE; box-shadow: 0 0 3px #666; } .tail_type_option:hover { background: #DDD; } #tail_save { font-size: 12px !important; position: absolute; top: 0; right: 90px; height: 26px !important; padding: 0 !important; width: 86px !important; } #tail_new { font-size: 12px !important; -moz-box-sizing: border-box !Important; padding: 0 !important; height: 26px !important; width: 60px !important; position: absolute !important; top: 0 !important; right: 180px !important; } #tail_delete { font-size: 12px !important; -moz-box-sizing: border-box !Important; padding: 0 !important; height: 26px !important; width: 60px !important; position: absolute !important; top: 0 !important; right: 250px !important; } #tail_data + span { display: block !Important; margin: 5px 0 -3px 0 !important; font-size: 12px !Important; } #tail_use { margin-left: 20px; margin-right: 20px; height: 30px; width: auto; float: left !important; cursor: default; } #tail_use_text { width: auto; padding: 0 10px; line-height: 28px !important; text-align: center !important; } #tail_use_box_out { position: absolute !important; width: 300px !important; } #tail_use_box { position: absolute !important; background: #EEE; bottom: 35px; left: 0; box-shadow: 0 0 3px #666; z-index: 100; } .tail_use_option { padding: 0 10px; line-height: 30px !important; } .tail_use_option:hover { background: #DDD; }");
  427. };

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址