BS Usertab

Userauswahl mit @ in der Shoutbox!

目前为 2017-06-25 提交的版本。查看 最新版本

// ==UserScript==
// @name         BS Usertab
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  Userauswahl mit @ in der Shoutbox!
// @author       jonnyy / High_village
// @match        https://bs.to/home
// @match        https://bs.to/
// @icon         https://bs.to/favicon.ico
// @grant        none
// donationsURL paypal.me/JonathanHeindl :3
// ==/UserScript==

if (!Array.prototype.remI) {
	var ars = ["Array", "HTMLCollection"];
	for (var i = 0; i < ars.length; i++) {
		Object.defineProperty(eval(ars[i]).prototype, "remI", {
			enumerable: false,
			value: function (index) {
				for (var i = 0; i < this.length; i++) {
					if (i > index) {
						this[i - 1] = this[i];
					}
				}
				this.length--;
			}
		});
		Object.defineProperty(eval(ars[i]).prototype, "f", {
			enumerable: false,
			value: function findArray(f, equal = false, path = "", first = true) {
				var index = -1;
				for (var i = 0; i < this.length; i++) {
					if (equal) {
						if (f === eval("this[i]" + path)) {
							index = i;
							if (first) {
								return index;
							}
						}
					} else {
						if (f.toString().indexOf(eval("this[i]" + path)) > -1) {
							index = i;
							if (first) {
								return index;
							}
						}
					}
				}
				return index;
			}
		});
	}
}
(function() {
	'use strict';
	setTimeout(function(){
		var sB=$(sbMsg)[0];
		var par=sB.parentElement;
		sB.oninput=function(a,b,c){
			var usercontainer=$(sbUserCont)[0].children;
			var onlineNames=[];
			for(var i=par.children.length-1;i>-1;i--){
				if(par.children[i].localName==="li12"){
					par.children[i].remove();
				}
			}
			for(var t=0;t<usercontainer.length;t++){
				if(sB.value.length>2){
					if(sB.value.indexOf("@")>-1 && usercontainer[t].children[0].textContent.toLowerCase().indexOf(sB.value.split("@")[1].toLowerCase())>-1){
						onlineNames.push(usercontainer[t].children[0].textContent);
					}
				}
			}
			var active=$(sbPosts)[0].children;
			for(var t=0;t<active.length;t+=2){
				if(onlineNames.f(active[t].children[0].textContent)>-1){
					onlineNames.remI(onlineNames.f(active[t].children[0].textContent,true));
					onlineNames.push(active[t].children[0].textContent);
				}

			}
			sB.onl=onlineNames;
			sB.index=0;
			if(sB.value.length>2&&onlineNames.length>0){
				var field=document.createElement("li12");
				field.style.width="200px";
				var height=onlineNames.length*20+20;
				var top=sB.offsetTop-(height);
				field.style.position="absolute";
				field.style.top=top+"px";
				field.style.height=height+"px";
				field.style.left=sB.offsetLeft+"px";
				field.style.background="white";
				field.style.border="black 1px solid";
				sB.fie=field;
				for(var j=0;j<onlineNames.length;j++){
					var username=document.createElement("el");
					username.innerText=onlineNames[j];
					username.style.position="absolute";
					username.style.top=j*20+8+"px";
					username.style.left=20+"px";
					username.style.width="160px";
					field.append(username);
				}
				par.append(field);
			}
		};
		sB.onkeydown=function(a,b,c){
			if(a.keyCode===38||a.keyCode===40){
				if(sB.fie.children[sB.index]){
					sB.fie.children[sB.index].style.backgroundColor="white";
				}
				function index(plus){
					if(plus){
						sB.index++;
						if(sB.index>sB.onl.length-1){
							sB.index=0; 
						}
					}else{
						sB.index--;
						if(sB.index==-1){
							sB.index=sB.onl.length-1;
						}
					}
				}
				if(sB.index===undefined){
					sB.index=0;
				}
				if(a.keyCode===38){
					index(false);
				}else{
					index(true);
				}
				sB.fie.children[sB.index].style.backgroundColor="blue";
				sB.value=sB.value.replace(sB.value.split("@")[1].split(" ")[0],sB.onl[sB.index]);
			}else if(a.keyCode===9){
				if(sB.onl.length===1){
					sB.value=sB.value.replace(sB.value.split("@")[1].split(" ")[0],sB.onl[0]);
				}
				for(var i=par.children.length-1;i>-1;i--){
					if(par.children[i].localName==="li12"){
						par.children[i].remove();
					}
				}
				setTimeout(function(sB){
					sB.focus();
					sB.selectionStart=sB.value.length;
					sB.selectionEnd=sB.value.length;
				},1,sB);
			}

		};
	},1000);
	// Your code here...
})();

QingJ © 2025

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