Greasy Fork is available in English.

Select2

The jQuery replacement for select boxes

As of 23/11/2016. See the latest version.

// ==UserScript==
// @name         Select2
// @namespace    https://select2.github.io/
// @version      0.2
// @description  The jQuery replacement for select boxes
// @author       t_liang
// @include      *:*
// @grant        none
// ==/UserScript==

(function() {
	var selects = document.getElementsByTagName('select');
	if (selects.length) {
		var protocol = location.protocol == 'https:' ? 'https:' : 'http:',
			jQueryOnload = function() {
				jQuery(function($) {
					$.getScript(protocol + '//cdn.bootcss.com/select2/4.0.3/js/select2.min.js', function() {
						$(document.head).append('<link href="' + protocol + '//cdn.bootcss.com/select2/4.0.3/css/select2.min.css" rel="stylesheet">');
						$(selects).filter(':visible').select2();
					});
				});
			},
			versionMoreThan = function(version, moreThan) {
				// 版本比较: 大于
				version = version.split('.');
				moreThan = moreThan.split('.');
				for (var i = 0, j = Math.max(version.length, moreThan.length); i < j; i++) {
					var version_i = i < version.length ? version[i] : 0;
					var moreThan_i = i < moreThan.length ? moreThan[i] : 0;
					if (version_i > Number(moreThan_i)) {
						return true;
					} else if (version_i < Number(moreThan_i)) {
						return false;
					}
				}
				return false;
			};
		if (typeof jQuery == 'function') {
			if (!versionMoreThan(jQuery.fn.jquery, '1.2.6')) {
				jQueryOnload();
				return;
			}
		}
		// append jQuery
		var jQueryScript = document.createElement('SCRIPT');
		jQueryScript.src = protocol + '//cdn.bootcss.com/jquery/3.1.1/jquery.min.js';
		jQueryScript.onload = jQueryOnload;
		document.head.appendChild(jQueryScript);
	}
})();