您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Really highlights sss
// ==UserScript== // @name SSS // @namespace pendevin // @description Really highlights sss // @include http://boards.endoftheinter.net/showmessages.php?* // @include https://boards.endoftheinter.net/showmessages.php?* // @require http://code.jquery.com/jquery-2.1.3.min.js // @version 2 // ==/UserScript== //add userIDs of people you want strobed //this is apple juice and John Egbert const STROBED=$([4897,22887]); //ll breaks without noconflict jquery this.$ = this.jQuery = jQuery.noConflict(true); //livelinks compatiblity *JQUERY //calls the function on each message-container in a document, including ones added by livelinks function livelinks(func,extraParams){ if(extraParams==undefined) extraParams=null; //run the function on the message-containers currently on the page $('#u0_1 .message-container').each(function(i,container){ func(container,extraParams); }); //run it on any message-containers added in the future $('#u0_1').on( 'DOMNodeInserted', extraParams, function(e){ if($(e.target).children('.message-container').length){ $(e.target).children('.message-container').each(function(i,container){ func(container,e.data); }); } } ); } //adds a style to a document and returns the style object *JQUERY //css is a string, id is an optional string that determines the object's id function addStyle(css,id){ //create a style var style=$('<style type="text/css">'); //add the css data to it style.html(css); if(id){ //remove any style that has our id $('#'+id).remove(); //give our style the id after removing the other stuff. idk if it matters, but i'm too lazy to find out style.attr('id',id); } //add the style into the head $('head').append(style); //we're outta here return style; } function strobe(userids){ var colors=['#ff0000','#ff8000','#ffff00','#00ff00','#0000ff','#ff00ff']; var text=['#ffffff','#ffffff','#000000','#000000','#ffffff','#000000']; var css=''; userids.each(function(i,userid){ css+='.message-container>.message-top[userID="'+userid+'"], .quoted-message>.message-top[userID="'+userid+'"]{'+ 'background-color:'+colors[num]+';'+ 'color:'+text[num]+';'+ '}'+ '.message-container>.message-top[userID="'+userid+'"] a, .quoted-message>.message-top[userID="'+userid+'"] a{'+ 'color:'+text[num]+';'+ '}'+ '.message-container>.message-top[userID="'+userid+'"] a:visited, .quoted-message>.message-top[userID="'+userid+'"] a:visited{'+ 'color:'+text[num]+';'+ '}' }); addStyle(css,'sss'); num=(num+1)%6; } //tags message-tops with userids //should call it with livelinks imo *JQUERY function userids(container){ $(container).find('.message-top').each(function(i,top){ top=$(top); //get userid attribute from the profile link top.attr('userID',top.children('a[href*="user="]').attr('href').split('user=')[1]); }); } livelinks(userids); var num=0; window.setInterval(strobe,50,STROBED);