مدیاویکی:Gadget-btm-actions.js

از اسلامیکال
نسخهٔ تاریخ ‏۱۲ ژانویهٔ ۲۰۲۳، ساعت ۱۶:۵۴ توسط Aboammar (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «//<pre> ←‏* * Copy upper tabs (actions) to bottom * Works for IE6+, FF2+... (see also [[MediaWiki:Gadget-btm-actions.css]]) * * Copyright: ©2008 Maciej Jaros (pl:User:Nux, en:User:EcceNux) * Licencja: GNU General Public License v2 * https://opensource.org/licenses/gpl-license.php * Version: 1.0.3: function htmlEscape(str) { return String(str) .replace(/&/g, '&') .replace(/"/g, '"')...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
//<pre>
/**
 * Copy upper tabs (actions) to bottom
 * Works for IE6+, FF2+... (see also [[MediaWiki:Gadget-btm-actions.css]])
 *
 * Copyright:  ©2008 Maciej Jaros (pl:User:Nux, en:User:EcceNux)
 * Licencja:  GNU General Public License v2
 * https://opensource.org/licenses/gpl-license.php
 * Version: 1.0.3
 */
function htmlEscape(str) {
    return String(str)
            .replace(/&/g, '&amp;')
            .replace(/"/g, '&quot;')
            .replace(/'/g, '&#39;')
            .replace(/</g, '&lt;')
            .replace(/>/g, '&gt;');
}

function copyUpperActions(output_id)
{
	var as = document.getElementById('p-cactions').getElementsByTagName('div')[0].getElementsByTagName('a');
	
	//
	// create new tabs element (bottom actions bar)
	var tabs = document.createElement('div');
	tabs.id = output_id;
	tabs.className = 'noprint';
	var stabs = document.createElement('div');
	stabs.id = 'post-'+output_id;	// for proper width:100% handling
	tabs.appendChild(stabs);

	//
	// copy
	for (var i=0; i<as.length; i++)
	{
		var nel = document.createElement('a');
		nel.title = as[i].title;
		nel.innerHTML = htmlEscape(as[i].innerHTML.toLowerCase());	// not sure why is this needed

		// normal browser
		//nel.href = as[i].href;
		// you just got to love IE...
		nel.href = as[i].parentNode.innerHTML.replace(/^.+ href=(["'])([^"']+)\1.+$/g,'$2').replace(/&amp;/g,'&');
		
		// copy class and id from <li>
		if (as[i].parentNode.nodeName.toLowerCase()=='li')
		{
			if (as[i].parentNode.id)
			{
				nel.id = output_id + '-' + as[i].parentNode.id;
			}
			if (as[i].parentNode.className)
			{
				nel.className = as[i].parentNode.className;
			}
		}
		stabs.appendChild(nel);
	}
	
	//
	// done
	return tabs;
}

function copyUpperActionsInitMonobook() {
	if (document.getElementById('content').offsetHeight>650)
	{
		var tabs;
		tabs = copyUpperActions('btm-actions');
		document.getElementById('column-content').appendChild(tabs);
	}
}

function copyUpperActionsInitVector() {
	var div = jQuery('<div/>').insertAfter('#bodyContent');
	var r = jQuery('#left-navigation').clone().attr('id', 'left-b');
	r.css({ 'float' : 'right', 'margin-right' : '-1em' });
	r.find('#p-cactions').remove();

	var l = jQuery('#right-navigation').clone().attr('id', 'right-b');
	l.css({ 'float' : 'left', 'margin-left' : '-1em' });

	div.append(r).append(l).append('<br style="clear: both; background-color: white"/>');
}

if ( mw.config.get( 'skin' ) == "monobook" ) {
	jQuery( document ).ready( function() {
		copyUpperActionsInitMonobook();
	} );
} else if ( mw.config.get( 'skin' ) == "vector" ) {
	jQuery( document ).ready( function() {
		copyUpperActionsInitVector();
	} );
}
//</pre>