מדיה ויקי:Portals.js
מראה
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
$( function() {
var portals = [];
var changedPortals = [];
var portalsUrl = "תבנית:פורטלים מתחלפים";
function onloadPortals( text ) {
var lines = text.split( "\n" );
var rx = new RegExp( "\\*\\s?([^\\|]*)\\|([^$]*)" );
for( var i = 0; i < lines.length; i++ ) {
var m = rx.exec( lines[i] );
if( m ) {
var portalName = m[1].replace( /\[/g, "" ).replace( /\]/g, "" );
var imgSrc = m[2].replace( /\[/g, "" ).replace( /\]/g, "" );
var html = '<a href="/wiki/' + encodeURIComponent(portalName) + '" title="' + portalName + '"><img alt="" src="' + imgSrc + '" width="25" height="23" border="0" /></a>';
html += ' <a href="/wiki/' + encodeURIComponent(portalName) + '" title="' + portalName + '">' + portalName.substring(6) + '</a>';
portals.push(html);
changedPortals.push(html);
} else {
break;
}
}
portalToggle();
var $aPortal = $( '<a>' ).attr( {'id': 'a-Portals', 'href': '#'} ).text( 'הצגת פורטלים אקראיים אחרים' ).click( portalToggle );
var spanPortal = $("#span-Portals").html('').append( $aPortal );
$("#hidePortalID").show();
}
function portalToggle( e ) {
if( changedPortals.length <= 3 ) {
// Not enough portals; copy all the portals
for( var i = 0; i < portals.length; i++ ) {
changedPortals[i] = portals[i];
}
}
for( var i = 5; i <= 8; i++ ) {
var td = document.getElementById( "portals" + i );
var randomNumber = Math.floor( Math.random() * changedPortals.length );
td.innerHTML = changedPortals[randomNumber];
changedPortals.splice( randomNumber, 1 );
}
if ( e ) {
e.preventDefault();
}
}
if( !document.getElementById("portals5") ) {
return;
}
$("#hidePortalID").hide();
$.ajax( {
url: mw.util.getUrl(portalsUrl),
data: { action: 'raw' },
success: onloadPortals
});
});