利用者:Sulpiride/common.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
//<syntaxhighlight lang=js>
/*
[[User:Waiesu/Clock.js]]
開発者: [[User:Waiesu]]
導入方法:
[[Special:MyPage/common.js]]またはスキンごとのjsに
importScript('User:Waiesu/Clock.js');
を追加してください
*/
(function (mw) {
'use strict';
function utcClock() {
var objDate = new Date();
var hh = objDate.getUTCHours();
var mm = objDate.getUTCMinutes();
var ss = objDate.getUTCSeconds();
var fff = objDate.getUTCMilliseconds();
hh = (hh < 10) ? ('<span style="visibility:hidden">0</span>' + hh) : hh;
mm = (mm < 10) ? (':0' + mm) : (':' + mm);
ss = (ss < 10) ? (':0' + ss) : (':' + ss);
span.innerHTML = hh + mm + ss;
timer = setTimeout(utcClock, 1000 - fff);
}
function localClock() {
var objDate = new Date();
var hh = objDate.getHours();
var mm = objDate.getMinutes();
var ss = objDate.getSeconds();
var fff = objDate.getMilliseconds();
hh = (hh < 10) ? ('<span style="visibility:hidden">0</span>' + hh) : hh;
mm = (mm < 10) ? (':0' + mm) : (':' + mm);
ss = (ss < 10) ? (':0' + ss) : (':' + ss);
span.innerHTML = hh + mm + ss;
timer = setTimeout(localClock, 1000 - fff);
}
function toUTC() {
func = utcClock;
small.innerHTML = '(UTC)<span style="visibility:hidden">+0</span>';
}
function toLocal() {
func = localClock;
var timezone = new Date().getTimezoneOffset() / -60;
if (timezone < 0) {
small.textContent = '(UTC' + timezone + ')';
} else {
small.textContent = '(UTC+' + timezone + ')';
}
}
var type = localStorage.jawpClockType || 'utcClock'; //初期設定
var func, timer;
var span = document.createElement('span'); //数字部分
var small = document.createElement('small'); //タイムゾーン部分
small.style.marginLeft = '0.25em';
if (type == 'utcClock') {
toUTC();
} else {
toLocal();
}
// clock 用
var tag = 'li';
var tagstyle = 'cursor: pointer;';
var rplelem = document.getElementById('pt-logout');
switch (mw.config.get('skin')) {
case 'cologneblue':
tag = 'span';
tagstyle += 'font-size: 1.2em;';
break;
case 'vector':
tagstyle += 'font-size: 0.8em;';
tagstyle += 'margin-top: 0.36em;';
break;
case 'modern':
tagstyle += 'color: white;';
tagstyle += 'padding: 0 1em;';
break;
case 'monobook':
tagstyle += 'text-transform: none;';
break;
}
var clock = document.createElement(tag);
clock.id = 'pt-clock';
clock.title = 'クリック: UTC/ローカル切替\nダブルクリック: キャッシュ破棄';
clock.style.cssText = tagstyle;
clock.appendChild(span);
clock.appendChild(small);
rplelem.insertAdjacentElement('beforebegin', clock);
rplelem.hidden = true;
func();
clock.onclick = function () {
clearInterval(timer);
if (func == utcClock) {
toLocal();
localStorage.jawpClockType = 'localClock';
} else {
toUTC();
localStorage.jawpClockType = 'utcClock';
}
func();
};
clock.ondblclick = function () {
mw.loader.using('mediawiki.api').then(function () {
new mw.Api().post({
action:'purge',
titles: mw.config.get('wgPageName')
}).then(function () {
location.reload();
}, function () {
alert('キャッシュを破棄できませんでした');
});
});
};
})(mediaWiki);
//</syntaxhighlight>