Xavier/common.js
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/*
*/
// This defines some control-key shortcuts you can use in text fields.
// IE not supported. See talk page for documentation.
// by Greg Ubben
// Add some control hotkeys for easily entering right-arrows (→) and other
// characters and phrases in the edit summary, edit box, or other text fields.
// hotkeys[] can be defined to augment the defaults. Type Ctrl-? to list all.
$.ready.then(function () {
function hotkey(e) {
if (e && e.ctrlKey && hotkeys[String.fromCharCode(e.charCode)]) {
var newtxt = hotkeys[String.fromCharCode(e.charCode)];
var before = this.value.slice(0, this.selectionStart);
var after = this.value.slice(this.selectionEnd);
var scroll = this.scrollTop;
if (newtxt == "MENU") { // type Ctrl-? for a list
var menu = "";
for (var key in hotkeys) {
var name = key.toUpperCase().replace(",", "<").replace(".", ">");
var value = hotkeys[key].replace(/\n/g, "•").slice(0, 40);
if (value && value != newtxt)
menu += "\u200E" + name + " \t" + value + "\n";
}
alert(menu);
return false;
}
// hack to not override Ctrl-F, Ctrl-T, etc. in main text area
//
if (newtxt.search(/\[\[WP:|\bfix/i) >= 0 && this.id == "wpTextbox1") {
return true;
}
if (newtxt.search(/^\[*\w./) >= 0 && this.id != "wpTextbox1") {
if (before.search(/[^\s;,]$/) >= 0) before += "; ";
if (after.search(/^[^\s;,]/) >= 0) newtxt += "; ";
}
this.value = before + newtxt + after;
this.selectionStart = this.selectionEnd = before.length + newtxt.length;
this.scrollTop = scroll; // don't lose our position
return false;
}
return true;
}
var defaultCtrl = {
",": "←", // Ctrl < left arrow
".": "→", // Ctrl > right arrow
"-": "–", // Ctrl - en dash
"=": "—", // Ctrl = em dash
"7": "&" + "nbsp;", // Ctrl & non-breaking space
"l": "link rename",
"r": "reverted [[WP:VAND|vandalism]]",
"s": "[[WP:STYLE]]",
"/": "MENU" // special function
};
var fields = { wpSummary: 0, wpTextbox1: 0, wpReason: 0, wpUploadDescription: 0 };
if (mw.config.get('wgAction') != "view") {
if (typeof (hotkeys) == 'undefined') hotkeys = {};
for (var key in defaultCtrl) {
if (hotkeys[key] == null)
hotkeys[key] = defaultCtrl[key];
}
for (var field in fields) {
var f = document.getElementById(field);
if (f) f.onkeypress = hotkey;
}
}
})
hotkeys = {
'b' : 'Brooks was here',
'l' : '',
's' : '§',
't' : '{| class="wikitable"\n! header\n! header\n|-\n| data\n| data\n|}\n'
}
Comments or questions about this documentation? Contact us for support!
