您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Tab cycles through users starting with characters
当前为
- // ==UserScript==
- // @name Username-completion
- // @namespace tag://kongregate
- // @description Tab cycles through users starting with characters
- // @include http://www.kongregate.com/games/*
- // @author Ventero
- // @date 03.01.2012
- // @version 1.5
- // require http://kong.ventero.de/updates/49872.js
- // ==/UserScript==
- // Written by Ventero (http://www.kongregate.com/accounts/Ventero) 05/23/09
- // Thanks to kaedenn for the idea of adding a colon if the username is the first word in the message
- // Copyright (c) 2009-2012 Ventero, licensed under MIT/X11 license
- // http://www.opensource.org/licenses/mit-license.php
- var s = document.createElement("script");
- s.textContent = "(" +
- function init_nameCompletion(){
- if(typeof ChatDialogue === "undefined" ||
- ChatDialogue.prototype.oldKeyPressTab) return;
- var isChrome = (navigator.appVersion.indexOf("Chrome") >= 0);
- if(isChrome) {
- ChatDialogue.prototype.initialize =
- ChatDialogue.prototype.initialize.wrap(function(old, p, i, h, u){
- old(p, i, h, u);
- var self = this;
- this._input_node.observe("keydown", function(event) {
- if(event.keyCode != 9 || event.ctrlKey || event.altKey || event.metaKey) return;
- self.onKeyPress(event);
- });
- })
- }
- ChatDialogue.prototype.oldKeyPressTab = ChatDialogue.prototype.onKeyPress;
- ChatDialogue.prototype.tabcnt = 0;
- ChatDialogue.prototype.done = 1;
- ChatDialogue.prototype.onKeyPress = function(a){
- if (a.keyCode != 9 || a.ctrlKey){
- this.tabcnt = 0;
- this.done = 1;
- this.oldKeyPressTab(a);
- return;
- }
- var node = (this._input_node.wrappedJSObject || this._input_node);
- if (this.tabcnt == 0 && this.done == 1){
- var inputText = node.getValue(),
- spaceAtCaret = inputText.substr(0, node.selectionStart).lastIndexOf(' ');
- this._caretPos = node.selectionStart;
- this._start = inputText.substr(0,spaceAtCaret);
- if(this._start) this._start+=" ";
- this._currentWord = inputText.substring(spaceAtCaret+1, this._caretPos);
- this._rest = inputText.substr(this._caretPos);
- }
- this.done = 0;
- var userArray = this._holodeck.chatWindow().activeRoom()._users_list,
- possibleMatches = [],
- z = node.getValue();
- if (z.match(/\s+$/)) z=z.replace(/\s+$/, '')
- for (var i=0;i<userArray.length;i++){
- if(userArray[i].username.toLowerCase().indexOf(this._currentWord.toLowerCase())==0){
- possibleMatches.push(userArray[i].username);
- }
- }
- if (this.tabcnt < possibleMatches.length){
- node.setValue(this._start + possibleMatches[this.tabcnt] + (this._start?" ":": ") + this._rest);
- node.selectionStart = this._caretPos + possibleMatches[this.tabcnt].length - this._currentWord.length+(this._start?1:2);
- node.selectionEnd = node.selectionStart;
- this.tabcnt+=1;
- } else {
- node.setValue(this._start + this._currentWord + this._rest);
- node.selectionStart = this._caretPos;
- node.selectionEnd = this._caretPos;
- this.tabcnt = 0
- }
- if(a.stop) a.stop();
- if(a.preventDefault) a.preventDefault();
- }
- } + ")();";
- window.setTimeout(function(){
- document.body.appendChild(s);
- document.body.removeChild(s);
- }, 0);