您需要先安装一个扩展,例如 篡改猴、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);