ميډياويکي:Visskjul.js
ښکارېدونکې بڼه
يادښت: د غوره توبونو د خوندي کولو وروسته، خپل د کتنمل (بروزر) ساتل شوې حافظه تازه کړی.د نور تفصيل لپاره د غځول په تنۍ کلېک وکړئ.
- فايرفاکس/ سفري: په دې کتنمل کې د Reload د ټکوهلو په وخت د Shift تڼۍ نيولې وساتی، او يا هم Ctrl-F5 يا Ctrl-Rتڼۍ کېښکاږۍ (په Apple Mac کمپيوټر باندې ⌘-R کېښکاږۍ)
- گووگل کروم: په دې کتنمل کې د Ctrl-Shift-R تڼۍ کېښکاږۍ (د مک لپاره ⌘-Shift-R)
- انټرنټ اېکسپلورر: په دې کتنمل کې د Refresh د ټکوهلو په وخت کې د Ctrl تڼۍ کېښکاږلې ونيسۍ، او يا هم د Ctrl-F5 تڼۍ کېښکاږۍ
- اوپرا: په دې کتنمل کې د خپل براوزر ساتل شوې حافظه پدې توگه سپينولی شی Tools→Preferences
لاسوند[جوړول]
// ============================================================
// SKJUL
// ============================================================
// Dette er en videreutvikling/tilpassing fra [[:da:MediaWiki:Monobook.js]]
// Følgende funksjoner brukes for å skjule navigasjonsbokser m.m.
// Alle <div>-er klassifisert som .skjulRamme får en knapp (.skjulKnapp)
// Når denne trykkes vil alt innholdet av .skjulInnhold <div>-er bli skjult/vist
// Alt vil i utganspunktet være vist, med mindre:
// - Antallet .skjulRamme overskrider en grense satt med 'NavigationBarShowDefault'
// - Rammen er også klassifisert .skjult
//
// I navigasjonsbokser vil det i tilleg dukke opp en .skjulBryter
// Denne er usynlig, men gjør det mulig å skjule selv om det er et bilde til høyre i malen
// Definerer hva som står på knappene
var NavigationBarHide = 'پټول';
var NavigationBarShow = 'ښکارونه';
// Setter opp maks antall rammer som vises
// overskrides tallet vil alle være skjult
var NavigationBarShowDefault = 2;
// toggleNavigationBar
// ============================================================
// Skjuler, eller viser, innholdet i rammen
// Parametre:
// indexNavigationBar: nummeret til rammen som skal endres
function toggleNavigationBar(indexNavigationBar)
{
// Finner knapp og ramme
var NavToggle = document.getElementById('skjulKnapp' + indexNavigationBar);
var NavFrame = document.getElementById('skjulRamme' + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// Leter gjennom rammen for å finne ting som skal skjules og endrer knapp
if (NavToggle.firstChild.data == NavigationBarHide) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (/skjulInnhold/.test(NavChild.className)) NavChild.style.display = 'none';
} // end for
NavToggle.firstChild.data = NavigationBarShow;
// Leter gjennom rammen for å finne ting som skal vises og endrer knapp
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (/skjulInnhold/.test(NavChild.className)) NavChild.style.display = 'block';
} // end for
NavToggle.firstChild.data = NavigationBarHide;
} // end if-else
// return true; <-- synder, men uten denne så klager firefox på at javascriptkoden ikke er gyldig.
} // end function
// createNavigationBarToggleButton
// ============================================================
// Legger på knapper på alle rammene og skjuler rammer dersom påkrevd
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
var NavFrame;
// Leter gjennom alle <div>-er
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// Dersom en ramme blir funnet
if (/skjulRamme/.test(NavFrame.className)) {
indexNavigationBar++;
// Gjør klar knappen
var NavToggle = document.createElement("a");
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
NavToggle.setAttribute('id', 'skjulKnapp' + indexNavigationBar);
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// Gjør klar ramme til knappen
var outerSpan = document.createElement('span');
outerSpan.className = 'skjulKnapp';
outerSpan.appendChild(document.createTextNode('['));
outerSpan.appendChild(NavToggle);
outerSpan.appendChild(document.createTextNode(']'));
// Setter .skjulKnapp som første element i .skjulRamme
NavFrame.insertBefore(
outerSpan,
NavFrame.firstChild
);
// Dersom det er en navigasjonsboks
if (/NavFrame/.test(NavFrame.className)) {
// Gjør klar bryteren
var NavToggle2 = document.createElement("a");
NavToggle2.className = 'skjulBryter';
NavToggle2.setAttribute('id', 'skjulBryter' + indexNavigationBar);
NavToggle2.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText2 = document.createTextNode('\xA0\xA0\xA0');
NavToggle2.appendChild(NavToggleText2);
// Setter .skjulBryter som første element i .skjulRamme .NavFrame
NavFrame.insertBefore(
NavToggle2,
NavFrame.firstChild
);
} // end if
// Setter identen til rammen
NavFrame.setAttribute('id', 'skjulRamme' + indexNavigationBar);
} // end if
} // end for
// Dersom det er flere rammer en default skjules de
if (NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar(i);
}
// Hvis ikke, skjules alle merket med .skjult
} else {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
if (/skjult/.test(document.getElementById('skjulRamme' + i).className)) {
toggleNavigationBar(i);
}
}
} // end if
} // end function
// Legger den sist i rekken over ting som skal gjøres når siden er klar
// aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
jQuery( document ).ready( createNavigationBarToggleButton );
// END SKJUL
// ============================================================
// ============================================================
// SAMLE
// ============================================================
// Dette er en videreutvikling/tilpassing fra [[:da:MediaWiki:Monobook.js]]
// Følgende funksjoner brukes for å slå sammen navigasjonsbokser,
// slik at de får en felles ramme.
// Dette gjøres ved hjelp av klassen NavSamling.
// Mer presist benytter den identene satt med createNavigationBarToggleButton()
// Deretter utelukker den alle vis/skjul-bokser som ikke er NavFrame
// joinFrames
// ============================================================
// Mottar en gruppe med NavFrames, fra joinNavigationBars(), og slår dem sammen
// Parametre:
// nodes: Gruppen av rammer som skal spleises
function joinFrames(nodes) {
// Lager en div.NavSamling
var e = document.createElement("div");
e.className = "NavSamling";
e.setAttribute("id", "NavSamling");
// Legger til kloner av rammen
for (i = 0; i < nodes.length; i++) {
e.appendChild(nodes[i].cloneNode(true));
}
// Legger alt sammen etter siste ramme i gruppa
var last_node = nodes[nodes.length-1];
var parent_node = last_node.parentNode;
var next_node = last_node.nextSibling;
// Fjerner de gamle rammene
for (i = 0; i < nodes.length; i++) {
parent_node.removeChild(nodes[i]);
}
// Setter inn klonene
parent_node.insertBefore(e, next_node);
} // end function
// joinNavigationBars
// ============================================================
// Går gjennom alle skjulRammer på siden og sender grupper til joinFrames()
function joinNavigationBars() {
// Lager en matrise som skal fylles med alle .skjulRamme
var nodes = new Array();
// En funksjon for å gjøre dette enkelt
var e = function(x) { return document.getElementById('skjulRamme' + x); };
// Alle rammer på siden sjekkes
for(
var i=1, NavFrame = e(i), NextNavFrame = e(i+1);
NavFrame;
i++, NavFrame = NextNavFrame, NextNavFrame = e(i+1)
) {
// Hopp over dersom den er samlet, mangler parentNode eller ikke er NavFrame
if (!NavFrame.parentNode
|| NavFrame.parentNode.className == "NavSamling"
|| !/NavFrame/.test(NavFrame.className)) {
continue;
} // end if
// Dersom neste ramme er inntil, eller en tom linje fra, og er en NavFrame,
// legges den i node-matrisen
if ((NavFrame.nextSibling == NextNavFrame ||
(NavFrame.nextSibling &&
NavFrame.nextSibling.nodeType == 3 &&
NavFrame.nextSibling.nextSibling &&
NavFrame.nextSibling.nextSibling == NextNavFrame
)
) && /NavFrame/.test(NextNavFrame.className)) {
// Er matrisen tom legges denne rammen først
if (!nodes || nodes.length == 0) nodes = [NavFrame];
// Neste ramme legges bakerst i matrisen
nodes.push(NextNavFrame);
// Er ikke neste ramme tilfredsstillende sjekkes
// om man har mange nok for å slå sammen og tømme matrisen
} else if (nodes.length > 1) {
joinFrames(nodes);
nodes = new Array();
} // end if-else
} // end for
// Er det flere navigasjonsbokser etter hverandre sendes de til joinFrames()
if (nodes.length > 1) {
joinFrames(nodes);
}
} // end function
// Legger den sist i rekken over ting som skal gjøres når siden er klar
// aOnloadFunctions[aOnloadFunctions.length] = joinNavigationBars;
jQuery( document ).ready( joinNavigationBars );
// END SAMLE
// ============================================================
/** Collapsible tables *********************************************************
*
* Kopiert fra en-wp: http://en.wikipedia.org/wiki/MediaWiki:Common.js 2010-02-29
* av bruker:nsaa
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "پټول";
var expandCaption = "ښکارونه";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ($(Tables[i]).hasClass("collapsible")) {
/* only add button and increment count if there is a header row to work with */
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
if (!HeaderRow) continue;
var Header = HeaderRow.getElementsByTagName( "th" )[0];
if (!Header) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.className = "collapseButton"; //Styles are declared in Common.css
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ($(NavigationBoxes[i]).hasClass("collapsed") || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse")) ) {
collapseTable( i );
}
else if ($(NavigationBoxes[i]).hasClass("innercollapse")) {
var element = NavigationBoxes[i];
while (element = element.parentNode) {
if ($(element).hasClass("outercollapse")) {
collapseTable ( i );
break;
}
}
}
}
}
jQuery( document ).ready( createCollapseButtons );