您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a multiquote button to the post management buttons.
// ==UserScript== // @name Hack Forums - Multi Quote // @namespace Doctor Blue // @description Adds a multiquote button to the post management buttons. // @include *hackforums.net/showthread.php?tid=* // @require https://cdn.jsdelivr.net/jquery/1.10.2/jquery-1.10.2.min.js // @require https://cdn.jsdelivr.net/jquery.cookie/1.4.1/jquery.cookie.min.js // @version 0.2.2 // @grant none // ==/UserScript== // Prevent conflicts with other userscripts var $j = $.noConflict(true) // Add the button to post management buttons var $posts = $j('table[id*="post_"] .bitButton:contains("Quote")') .after(' <a class="bitButton multiquote" href="javascript:void(0)">Quote+</a>') // Restyle the multiquote insert message $j('#quickreply_multiquote') .css('background-color', '#777777') .css('border', '1px #CCCCCC dashed') // Parse the multiquote cookie function getQuotes() { var quotes = $j.cookie('multiquote') return (quotes === undefined ? new Array() : quotes.split('|')) } // Change button text to Q- if post is already being quoted on load function quoteInit() { var quotes = getQuotes() $j('.multiquote').text('Quote+') quotes.forEach(function(pid) { $j('#post_' + pid + ' .multiquote').text('Quote-') }) } // Retrieve the quoted content function fetchQuoteText() { Thread.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"}) $j.get('/xmlhttp.php?action=get_multiquoted&load_all=1', function(data) { console.log("Inserting text") var olddata = $j('#message').val() $j('#message').val(olddata + data) Thread.spinner.destroy() Thread.spinner = "" clearQuotes() }) } function clearQuotes() { $j.removeCookie('multiquote', {path: '/', domain: '.hackforums.net'}) $j('#quickreply_multiquote').hide() quoteInit() } // Set all buttons to Q+ after inserting $j('#quickreply_multiquote > span > a[href*="load_all_quotes"]') .prop('onclick', null).off('click') // Remove MyBB handler $j('#quickreply_multiquote > span > a[href*="load_all_quotes"]').on('click', function(event) { console.log("Inserting quotes") $j('.bitButton.multiquote').text('Quote+') fetchQuoteText() event.preventDefault() }) $j('.bitButton.multiquote').on('click', function(event) { // Get the post id (Dunno why parentsUntil doesn't work here) var pid = $j(this).parent().parent().parent().parent().parent().attr('id').substr(5) var quotes = getQuotes() // Remove the quote if it's already there, add it if it isn't var i = $j.inArray(pid, quotes) if(i !== -1) { // Remove quote if found quotes.splice(i, 1) $j(this).text("Quote+") } else { // Add quote if not found quotes.push(pid) $j(this).text("Quote-") } // Update the cookie if(quotes.length > 0) { $j('#quickreply_multiquote').show() $j.cookie('multiquote', quotes.join('|'), {expires: 365, path: '/', domain: '.hackforums.net'}) } else { $j('#quickreply_multiquote').hide() $j.removeCookie('multiquote', {path: '/', domain: '.hackforums.net'}) } })