MediaWiki:Gadget-mailtoURLrecover.js
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
/// Gadget-mailtoURLrecover.js
// Make obfuscated mailto: URL functional.
// PerfektesChaos@de.wikipedia 2024
/// @license: CC-by-sa/4.0 GPLv3
// <nowiki>
/* global window: false */
/* jshint bitwise:true, curly:true, eqeqeq:true, latedef:true,
laxbreak:true,
nocomma:true, strict:true, undef:true, unused:true */
( function ( mw, $ ) {
"use strict";
var GLOBAL = { signature: "mailtoURLrecover",
search: "mailto-url-obfuscated",
replace: [ "%5B%20@%20%5D" ]
};
function find( at, around ) {
// Handler for presumable occurrence
// Precondition:
// at -- number, of occurrence, ignored
// around -- DOM object of wrapper
// Uses:
// > GLOBAL.replace
// > GLOBAL.search
var $e = $( around ),
$a = $e.find( "a" ),
i, k, s, swap;
if ( $a.length === 1 ) {
swap = $a.attr( "href" );
if ( swap &&
swap.substring( 0, 7 ) === "mailto:" ) {
for ( i = 0; i < GLOBAL.replace.length; i++ ) {
s = GLOBAL.replace[ i ];
k = swap.indexOf( s, 7 );
if ( k > 0 ) {
swap = swap.substring( 0, k )
+ "@"
+ swap.substring( k + s.length );
$a.attr( "href", swap );
$e.removeClass( GLOBAL.search );
break; // for i
}
} // for i
}
}
} // find()
function first() {
// Start execution
// Precondition:
// DOM ready
// Uses:
// > GLOBAL.search
// (find)
var $got = $( "." + GLOBAL.search );
$got.each( find );
} // first()
$( first );
}( window.mediaWiki, window.jQuery ) );
// </nowiki>