您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
煎蛋多说评论框拯救计划,拯救被“评论框出错啦(990015): 服务异常,请联系客服人员”折磨的你。
// ==UserScript== // @name 煎蛋多说评论框拯救计划 // @namespace http://jandan.net/?JandanTucao // @version 0.1 // @description 煎蛋多说评论框拯救计划,拯救被“评论框出错啦(990015): 服务异常,请联系客服人员”折磨的你。 // @author Jandaner // @match *://jandan.net/* // @grant none // @github https://github.com/slowargo/JandanTucao // ==/UserScript== (function() { var myElement = document.querySelectorAll("span.time"); for (var i = 0; i < myElement.length; i++) { //console.log("i:" + i + " ? " + myElement[i]); myElement[i].addEventListener("click", function() { function wait_util(fn, condition, interval) { interval = interval || 100; return function() { var timer = setInterval(function() { var check; try { check = !!(condition()); } catch (e) { check = false; } if (check) { clearInterval(timer); delete timer; fn(); } }, interval); }; } var link = $(this).find('a'); if (link.length > 0) { var comment_id = $(link).find('span.ds-thread-count').attr('data-thread-key'); var comment_container = $('#comment-box-' + comment_id); var sub_div = comment_container.find('div'); var retry = 3; if (sub_div.length == 0) { console.log("div not found"); return; } var res = $(sub_div[0]).html(); //似乎不保证在<a>的click前执行?为避免错误重置,依然加上<div id="ds-waiting"></div>的判断 //但假如多说返回超时,这里就不会强制重试了 if (res.length > 0 && res.length < 30 && res != '<div id="ds-waiting"></div>') { //if ($(sub_div[0]).html() == '评论框出错啦(990015): 服务异常,请联系客服人员' || $(sub_div[0]).html() =='<div id="ds-waiting"></div>' ) { //重置状态,强制多说脚本重新向服务器请求 console.log(res + " reset..."); $(sub_div[0]).html(''); $(sub_div[0]).data("initialized", 0); } wait_util(function() {}, function() { var res = $(sub_div[0]).html(); if (res == '<div id="ds-waiting"></div>') { //如果这里放过了,很可能加载完成后多说返回990015,评论区就直接显示990015了 return false; } if (retry-- > 0 && res.length < 30) { console.log(res + " retry: " + retry); //重新加载评论框 $(sub_div[0]).html(''); $(sub_div[0]).data("initialized", 0); DUOSHUO.EmbedThread(sub_div[0]); return false; } return true; }, 200)(); } }); } })();