الفرق بين المراجعتين لصفحة: «ميدياويكي:Common.js»
تم حذف المحتوى تمت إضافة المحتوى
ط Protocol relative script includes |
update |
||
سطر 34: | سطر 34: | ||
} |
} |
||
} |
} |
||
سطر 55: | سطر 54: | ||
} |
} |
||
jQuery(document).ready(customizeWiktionary); |
|||
else if (window.attachEvent) window.attachEvent("onload",customizeWiktionary); |
|||
/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */ |
/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */ |
||
سطر 67: | سطر 65: | ||
//============================================================ |
//============================================================ |
||
/** |
|||
* Installation d'une nouvelle fonction de cette façon: |
|||
* aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses) |
|||
*/ |
|||
if (!window.aOnloadFunctions) { |
|||
var aOnloadFunctions = new Array(); |
|||
} |
|||
window.onload = function() |
|||
{ |
|||
if (window.aOnloadFunctions) { |
|||
for (var _i=0; _i<aOnloadFunctions.length; _i++) { |
|||
aOnloadFunctions[_i](); |
|||
} |
|||
} |
|||
} |
|||
/** |
|||
* Ajouter une nouvelle fonction a excuter au chargement de la page. |
|||
*/ |
|||
function addLoadEvent(func) |
|||
{ |
|||
if (window.addEventListener) |
|||
window.addEventListener("load", func, false); |
|||
else if (window.attachEvent) |
|||
window.attachEvent("onload", func); |
|||
} |
|||
//============================================================ |
|||
// |
|||
// لإضافة قالب خاص |
|||
// |
|||
// ============================================================ |
|||
// BEGIN Enable multiple onload functions |
|||
// setup onload functions this way: |
|||
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! |
|||
if (!window.aOnloadFunctions) { |
|||
var aOnloadFunctions = new Array(); |
|||
} |
|||
window.onload = function() { |
|||
if (window.aOnloadFunctions) { |
|||
for (var _i=0; _i<aOnloadFunctions.length; _i++) { |
|||
aOnloadFunctions[_i](); |
|||
} |
|||
} |
|||
} |
|||
// END Enable multiple onload functions |
// END Enable multiple onload functions |
||
سطر 236: | سطر 185: | ||
var collapseCaption = "أخفِ"; |
var collapseCaption = "أخفِ"; |
||
var expandCaption = "أظهر"; |
var expandCaption = "أظهر"; |
||
function hasClass( element, className ) { |
|||
var Classes = element.className.split( " " ); |
|||
for ( var i = 0; i < Classes.length; i++ ) { |
|||
if ( Classes[i] == className ) { |
|||
return ( true ); |
|||
} |
|||
} |
|||
return ( false ); |
|||
} |
|||
function collapseTable( tableIndex ) |
function collapseTable( tableIndex ) |
||
سطر 278: | سطر 217: | ||
for ( var i = 0; i < Tables.length; i++ ) { |
for ( var i = 0; i < Tables.length; i++ ) { |
||
if ( |
if ( $(Tables[i]).hasClass("collapsible" ) ) { |
||
NavigationBoxes[ tableIndex ] = Tables[i]; |
NavigationBoxes[ tableIndex ] = Tables[i]; |
||
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex); |
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex); |
||
سطر 307: | سطر 246: | ||
for ( var i = 0; i < tableIndex; i++ ) { |
for ( var i = 0; i < tableIndex; i++ ) { |
||
if ( |
if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse" ) ) ) { |
||
collapseTable(i); |
collapseTable(i); |
||
} |
} |
||
سطر 313: | سطر 252: | ||
} |
} |
||
jQuery(document).ready(createCollapseButtons); |
|||
نسخة 10:59، 14 أغسطس 2012
/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */
/* {{interwiki-all|Mediawiki:Common.js}}
<pre dir="ltr">
*/
// import scripts for Interwiki Transclusion from //wikisource.org/wiki/Wikisource:Shared_Scripts
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');
/* plus tab for beer parlour and tea room */
function addPlusToBeerParlour() {
// get page title
var pagetitle = document.getElementById('content').getElementsByTagName('h1').item(0).firstChild.nodeValue;
// is this the beer parlour (in normal mode)?
if ((pagetitle.search(/^Wiktionary:Beer parlour$/) != -1) || (pagetitle.search(/^Wiktionary:Tea room$/) != -1)) {
// find the spot to add our new tab
var edittabli = document.getElementById('ca-edit');
// create the plus tab
var plustabli = document.createElement('li');
plustabli.id = 'ca-addsection';
var plustablink = document.createElement('a');
plustablink.href = '/w/index.php?title=' + pagetitle + '&action=edit§ion=new';
plustablink.appendChild(document.createTextNode('+'));
plustabli.appendChild(plustablink);
// add the plus tab
edittabli.className = 'istalk';
edittabli.parentNode.insertBefore(plustabli, edittabli.nextSibling);
}
}
/* select subsection of special characters */
function chooseCharSubset(s) {
var l = document.getElementById('editpage-specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
}
/* do any Wiktionary-specific customizations */
function customizeWiktionary() {
addPlusToBeerParlour();
//this throws a javascript error because the function does not exist. I'm just commenting it out 'cause I don't know what it's for
//addCharSubsetMenu();
}
jQuery(document).ready(customizeWiktionary);
/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */
//============================================================
//
// لتفعيل البرامج المضافة
//
//============================================================
// END Enable multiple onload functions
// ============================================================
// ============================================================
// BEGIN Dynamic Navigation Bars
// set up the words in your language
var NavigationBarHide = 'أخفِ';
var NavigationBarShow = 'أظهر';
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 0;
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'none';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
var NavChild = NavFrame.firstChild;
NavChild != null;
NavChild = NavChild.nextSibling
) {
if (NavChild.className == 'NavPic') {
NavChild.style.display = 'block';
}
if (NavChild.className == 'NavContent') {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(
var j=0;
j < NavFrame.childNodes.length;
j++
) {
if (NavFrame.childNodes[j].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) {
toggleNavigationBar(i);
}
}
}
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
// END Dynamic Navigation Bars
// ============================================================
// == Collapsible tables ======================================
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.getElementsByTagName( "tr" );
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" ) ) {
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.style.styleFloat = "left";
Button.style.cssFloat = "left";
Button.style.textAlign = "left";
Button.style.width = "6em";
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( "]" ) );
var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
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);
}
}
}
jQuery(document).ready(createCollapseButtons);
/**********************
*** Automatically generate page footer from values in {{header}}
*** by [[user:GrafZahl]]
**********************/
function DisplayFooter() {
if(document.getElementById && wgNamespaceNumber==0) {
nofooter = document.getElementById('nofooter');
hp = document.getElementById('headerprevious');
hn = document.getElementById('headernext');
content = document.getElementById('bodyContent');
catlinks = document.getElementById('catlinks');
footer = document.createElement('table');
//header_template = document.getElementById('headertemplate');
if( (!((content) && (footer))) || (!(hp || hn)) ||
(nofooter))
return;
footer.setAttribute('class', 'headertemplate');
footer.setAttribute('id', 'footertemplate');
footer.setAttribute('style', 'margin-top:1em; clear:both;');
/* Begin footer HTML code */
tr = document.createElement('tr');
td = document.createElement('td');
td.setAttribute('align', 'left');
td.setAttribute('width', '33%');
if (hp) {
fp = hp.cloneNode(true);
fp.setAttribute('id', 'footerprevious');
td.appendChild(fp);
}
tr.appendChild(td);
td = document.createElement('td');
td.setAttribute('align', 'center');
td.setAttribute('width', '34%');
a = document.createElement('a');
a.setAttribute('href', '#top');
text = document.createTextNode('عودة إلى رأس الصفحة');
a.appendChild(text);
td.appendChild(a);
tr.appendChild(td);
td = document.createElement('td');
td.setAttribute('align', 'right');
td.setAttribute('width', '33%');
if (hn) {
fn = hn.cloneNode(true);
fn.setAttribute('id', 'footernext');
td.appendChild(fn);
}
tr.appendChild(td);
footer.appendChild(tr);
/* End footer HTML code */
if(catlinks) // place footer before category box
content.insertBefore(footer, catlinks);
else
content.appendChild(footer);
}
}
addOnloadHook(DisplayFooter);
/* Footnotes as tooltip - from wikisource.org */
addOnloadHook ( function ()
{
sups = document.getElementsByTagName("sup");
for (i=0; i<sups.length; i++)
{
note_id = sups[i].childNodes[0].href;
if (note_id && (note_id.indexOf("#") != -1))
{
note_id = document.getElementById(note_id.substr(note_id.indexOf("#")+1));
if (note_id)
if (document.all)
{
sups[i].title = note_id.innerText;
sups[i].childNodes[0].title = note_id.innerText;
}
else
{
sups[i].title = note_id.textContent;
}
}
}
})