您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
获得焦点时回复框自动停靠、加载更多楼层、回复任意楼层、回复后快速返回
当前为
// ==UserScript== // @name 妖火网增强插件 // @namespace https://yaohuo.me/ // @version 0.35 // @description 获得焦点时回复框自动停靠、加载更多楼层、回复任意楼层、回复后快速返回 // @author 外卖不用券(id:23825) // @match https://*.yaohuo.me/* // @icon https://yaohuo.me/css/favicon.ico // @license MIT // ==/UserScript== if (/^\/bbs-.*\.html$/.test(window.location.pathname) || '/bbs/book_view.aspx' === window.location.pathname) { // 回复框停靠 let content = document.getElementsByClassName('content')[1]; let form = document.getElementsByName('f')[0]; content.removeChild(form); let newDiv = document.createElement('div'); let clazz = document.createAttribute('class'); clazz.value = 'sticky'; newDiv.setAttributeNode(clazz); newDiv.style.cssText = 'padding: 7px; background-color: #fff'; newDiv.innerHTML = form.outerHTML; document.body.insertBefore(newDiv, content); let sticky = false; newDiv.onclick = () => { let form = document.getElementsByName('f')[0]; let sendmsg = document.getElementsByName('sendmsg')[0]; let span = document.createElement('span'); let textNode = document.createTextNode('取消回复停靠'); span.appendChild(textNode); span.style.cssText = 'float: right'; span.onclick = (e) => { e.cancelBubble = true; newDiv.style.cssText = 'padding: 7px; background-color: #fff'; form.removeChild(span); sticky = false; }; if (!sticky) { newDiv.style.cssText = 'position: sticky; top: 0; bottom: 0; padding: 7px; background-color: #fff'; form.insertBefore(span, sendmsg); sticky = true; } }; // 加载更多回复 let more = document.getElementsByClassName('more')[0]; let moreLink = more.getElementsByTagName('a')[0]; let totalpage = Math.ceil(/getTotal=\d+/.exec(moreLink.href)[0].slice(9) / 15); let currpage = 1; let topage = parseInt(/&page=\d+/.exec(moreLink.href)[0].slice(6)); let tourl = moreLink.href.replace('&page=' + topage, ''); more.removeChild(moreLink); let newMoreLink = document.createElement('a'); let span1 = document.createElement('span'); let span1_id = document.createAttribute('id'); span1_id.value = 'YH_show_loadimg'; span1.setAttributeNode(span1_id); newMoreLink.appendChild(span1); let span2 = document.createElement('span'); let span2_id = document.createAttribute('id'); span2_id.value = 'YH_show_tip'; span2.setAttributeNode(span2_id); span2.appendChild(document.createTextNode('加载更多(' + currpage + '/' + totalpage + ')')); newMoreLink.appendChild(span2); more.appendChild(newMoreLink); newMoreLink.onclick = () => YH_show_next(totalpage, 15, currpage, tourl, 'page'); // 回复任意楼层 replyAny(); } else if ('/bbs/book_re.aspx' === window.location.pathname && !window.location.search) { window.location.href = document.getElementsByClassName('tip')[0].getElementsByTagName('a')[0].href; } function replyAny() { let sticky = document.getElementsByClassName('sticky')[0]; let recontent = document.getElementsByClassName('recontent')[0].childNodes; for (let i = 0; i < recontent.length; i++) { let replyLink = recontent[i].getElementsByTagName('a')[0].href; recontent[i].onclick = () => { let reply = /reply=\d+/.exec(replyLink)[0].slice(6); let touserid = /touserid=\d+/.exec(replyLink)[0].slice(9); sticky.style.cssText = 'position: sticky; top: 0; bottom: 0; padding: 7px; background-color: #fff'; sticky.click(); let form = document.getElementsByName('f')[0]; if (form.firstChild.tagName === 'B') { form.removeChild(form.firstChild); form.removeChild(form.firstChild); form.removeChild(form.firstChild); form.removeChild(form.firstChild); } form.insertAdjacentHTML('afterbegin', '<b>回复' + reply + '楼</b><select name="sendmsg2"><option value="1">通知对方</option><option value="0">不予通知</option></select><span class="noreply" style="float: right">取消回复楼层</span><br>'); if (form.lastChild.tagName === 'INPUT') { form.removeChild(form.lastChild); form.removeChild(form.lastChild); } form.insertAdjacentHTML('beforeend', '<input type="hidden" name="reply" value="' + reply + '">'); form.insertAdjacentHTML('beforeend', '<input type="hidden" name="touserid" value="' + touserid + '">'); document.getElementsByClassName('noreply')[0].onclick = () => { form.removeChild(form.firstChild); form.removeChild(form.firstChild); form.removeChild(form.firstChild); form.removeChild(form.firstChild); form.removeChild(form.lastChild); form.removeChild(form.lastChild); } } } } // YH_common.js var xmlhttp = null; var YH_now_currpage = 0; var YH_page_total = 0; var YH_scoll_downEnd = 0; function YH_show_next(YH_total, YH_pagesize, YH_currpage, tourl, pagetype) { YH_page_total = parseInt(YH_total); var pagesize = parseInt(YH_pagesize); var currpage = parseInt(YH_currpage); if (YH_now_currpage == 0) { YH_now_currpage = currpage + 1; } else { YH_now_currpage = YH_now_currpage + 1; } document.getElementById('YH_show_loadimg').innerHTML = '<span id=\"loadimg\"> </span>'; document.getElementById('YH_show_tip').innerHTML = '正在努力加载(' + YH_now_currpage + '/' + YH_page_total + ')中'; if ((YH_now_currpage) > YH_page_total) { document.getElementById('YH_show_loadimg').innerHTML = ''; document.getElementById('YH_show_tip').innerHTML = '没有更多了'; } else { tourl = tourl + '&' + pagetype + '=' + YH_now_currpage; LoadXML_Async(tourl); } } function LoadXML_Async(tourl) { try { if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) { xmlhttp.overrideMimeType("text/xml"); } } else if (window.ActiveXObject) { var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP", ""]; for (var i = 0; i < activexName.length; i++) { try { xmlhttp = new ActiveXObject(activexName[i]); break; } catch (e) {} } } xmlhttp.onreadystatechange = YH_CallBack; xmlhttp.open("GET", tourl, true); xmlhttp.send(null); } catch (e) { document.getElementById('YH_show_loadimg').innerHTML = '<span id=\"loadimg\"> </span>'; document.getElementById('YH_show_tip').innerHTML = '加载出错了!'; } } function YH_CallBack() { if (xmlhttp == null) { return; } if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) { var responseText = xmlhttp.responseText; var st = responseText.indexOf("<!--listS-->"); var et = responseText.indexOf("<!--listE-->"); if (st < 0 || et < 0) { document.getElementById('YH_show_loadimg').innerHTML = ''; document.getElementById('YH_show_tip').innerHTML = '加载完全部了!'; } else { responseText = responseText.substring(st + 12, et); document.getElementsByClassName('recontent')[0].style.display = 'block'; document.getElementsByClassName('recontent')[0].innerHTML += responseText; replyAny(); if (YH_now_currpage == YH_page_total) { document.getElementById('YH_show_loadimg').innerHTML = ''; document.getElementById('YH_show_tip').innerHTML = '没有更多了'; } else { document.getElementById('YH_show_loadimg').innerHTML = ''; document.getElementById('YH_show_tip').innerHTML = '加载更多(' + (YH_now_currpage) + '/' + YH_page_total + ')'; } } } } }