মিডিয়াউইকি:Gadget-Special characters.js

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
/* Change [[MediaWiki:Edittools]] into true buttons. */

$(document).ready( function($) {
	var	$sc = $('#specialchars'),
		$sb = $sc.find('.specialbasic'),
		$sel,
		$placeholder,
		bl = $sb.length,
		ci = 0;
	
	$placeholder = $('<span id="#specialchars-before"></span>');
	$sc = $sc.before($placeholder).detach();
	
	if ( bl > 1 ) {
		ci = Number( $.cookie('mw-charinsert') ) || 0;
		if ( ci > bl ) {
			$.cookie( 'mw-charinsert', 0, { expires: 30, path: '/' } );
			ci = 0;
		}
		$sel = $( '<select>' ).change( function(e) {
			var	$this = $( this ),
				i = Number( $this.val() ),
				last = Number( $.cookie('mw-charinsert') ) || 0;
 
			if ( last !== i ) {
				$sb.eq( last ).css( 'display', 'none' );
				$sb.eq( i ).css( 'display', 'inline' );
				$.cookie( 'mw-charinsert', i, { expires: 30, path: '/' } );
			}
		});
	}
	
	$.eachAsync($sb, {
		'delay': 1,
		'bulk': 0,
		'loop': function(i,v) {
			var id = $(this)
				.css('display', i !== ci ? 'none' : 'inline')
				.find('a').replaceWith( function() {
					var $this = $(this), onclick = $this.attr( 'onclick' );
					return $( '<button>', { type: 'button', text: $this.text() } )
						.blur()
						.click( $.isFunction( onclick ) ? onclick : Function( onclick ) );
				})
				.end()
				.attr( 'id' )
				.replace( /\.([0-9A-F]{2})/g, '%$1' )
				.replace( /_/g, ' ' );
			
				if ( bl > 1 ) {
					$sel.append(
						'<option value="' + i + '"' + (i === ci ? ' selected="selected"' : '') + '>'
						+ decodeURIComponent( id )
						+ '</option>'
				);
			}
		},
		'end': function() {
			$sc.prepend($sel);
			$sel.change();
			$placeholder.after($sc).remove();
		}
	});
});