利用者:Yasusushi/common.js

提供:エケペディア
< 利用者:Yasusushi
2015年9月11日 (金) 14:19時点におけるYasusushi (トーク | 投稿記録)による版 (カテゴリごとにeditintroを設定するテスト)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Internet Explore/Edger: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
  • Opera: Ctrl-F5を押してください
/* カテゴリごとにeditintroを設定する */
window.CATEGORY_EDITINTRO_TABLE = {
	'シングル': 'テンプレート:シングルページ' ,
	'メンバー': 'テンプレート:メンバーページ'
};
 
window.addEditIntro = function(templateName) {
	var editURI = mw.config.get('wgScript') + '?title=' + encodeTitle(mw.config.get('wgPageName')) + '&action=edit';

	var searchIds = {
		'cologneblue' : ['quickbar', 'footer', 'article'],
		'vector'      : ['ca-edit', 'bodyContent'],
		'modern'      : ['ca-edit', 'mw_contentholder'],
		'monobook'    : ['ca-edit', 'bodyContent']
	};
	var ids = searchIds[skin] || searchIds['monobook'];

	for(var i = 0; i < ids.length; i++) {
		var el = document.getElementById(ids[i]);
		if(!el) continue;

		var aElements = el.getElementsByTagName('a');
		for(var j = 0; j < aElements.length; j++) {
			if(aElements[j].href.indexOf(editURI) >= 0) {
				aElements[j].href += '&editintro=' + encodeTitle(templateName);
			}
		}
	}

	function encodeTitle(title) {
		return encodeURIComponent(title.replace(/ /g, '_')).replace(/%2F/gi, '/').replace(/%3A/gi, ':');
	}
};

if (mw.config.get('wgNamespaceNumber') == 0) {
	$(function(){
		var catIds = ['mw-normal-catlinks', 'mw-hidden-catlinks'];
		for(var i = 0; i < catIds.length; i++) {
			var catContainer = document.getElementById(catIds[i]);
			if(!catContainer) continue;

			var cats = catContainer.getElementsByTagName('a');
			for(var j = 0; j < cats.length; j++) {
				var ei;
				if(ei = CATEGORY_EDITINTRO_TABLE[cats[j].innerHTML]) {
					addEditIntro(ei);
					return;
				}
			}
		}
	});
}