Benutzer:Prog/Tools.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// <nowiki>
function maskRegex(text){
return text.replace(/([\/\.\+\*\?\^\$\|\\\(\)\[\]\{\}])/g, "\\$1").replace(/\t/g, '\\t').replace(/\n/g, '\\n');
}
function findFirstOf(text, characters){
var result = text.search(new RegExp('['+maskRegex(characters)+']'));
if(result == -1) return text.length;
return result;
}
function findLastOf(text, characters){
var masked = maskRegex(characters);
var result = text.search(new RegExp('['+masked+'][^'+masked+']*$'));
if(result == -1) return text.length;
return result;
}
function findFirstNotOf(text, characters){
var result = text.search(new RegExp('[^'+maskRegex(characters)+']'));
if(result == -1) return text.length;
return result;
}
function findLastNotOf(text, characters){
var masked = maskRegex(characters);
var result = text.search(new RegExp('[^'+masked+']['+masked+']*$'));
if(result == -1) return text.length;
return result;
}
function trim(text, characters){
var first = findFirstNotOf(text, characters);
var last = findLastNotOf(text, characters);
var length = last - first + (last == text.length ? 0 : 1);
return text.substr(first, length);
}
function createLink(text, href){
return $('<a href="'+href+'">'+text+'</a>');
}
function createStandardToolBox(){
return $('<div id="JSExtensionToolBox" />').insertBefore($('#firstHeading'));
}
function getToolBox(){
var box = $("#JSExtensionToolBox");
if(!box.length) box = createStandardToolBox();
return box;
}
function addToBox(box, element){
var subBox = $('<div />');
if($.isArray(element)){
for(var i = 0; i < element.length; ++i){
element[i].addClass('JSBoxElement');
subBox.append(element[i]);
}
}else{
subBox.append(element);
}
box.append(subBox);
}
// Eigene Map, solange mw.Map noch nicht vorhanden
function MyMap(){
this.values={};
};
MyMap.prototype.get=function(selection,fallback){
if(typeof selection==='object'){
selection=$.makeArray(selection);
var results={};
for(var i=0;i<selection.length;i++){
results[selection[i]]=this.get(selection[i],fallback);
}
return results;
}else if(typeof selection==='string'){
if(typeof this.values[selection]==='undefined'){
if(typeof fallback!=='undefined'){
return fallback;
}
return null;
}
return this.values[selection];
}
return this.values;
};
MyMap.prototype.set=function(selection,value){
if(typeof selection==='object'){
for(var s in selection){
this.values[s]=selection[s];
}
}else if(typeof selection==='string'&&typeof value!=='undefined'){
this.values[selection]=value;
}
};
MyMap.prototype.exists=function(selection){
if(typeof keys==='object'){
for(var s=0;s<selection.length;s++){
if(!(selection[s]in this.values)){
return false;
}
}
return true;
}else{
return selection in this.values;
}
};
var JsonRequests = new MyMap();
function jsonRequest(uri, callback){
if(JsonRequests.exists(uri)){
var request = JsonRequests.get(uri);
if($.isArray(request)){
request.push(callback);
}else{
callback(request);
}
}else{
JsonRequests.set(uri, [callback]);
var complete = function(json){
var callbacks = JsonRequests.get(uri);
JsonRequests.set(uri, json);
for(var i = 0; i < callbacks.length; ++i){
callbacks[i](json);
}
}
$.getJSON(uri, complete);
}
}
mw.loader.load('https://de.wikibooks.org/w/index.php?title=Benutzer:Prog/Tools.css&action=raw&ctype=text/css', 'text/css');
// </nowiki>