利用者:Astsansgreatest/common.js
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
$.when(
$.ready,
mw.loader.using(['mediawiki.user', 'mediawiki.api'])
).then(function() {
if (mw.config.get('wgPageName') !== '特別:PrivateSandbox' &&
mw.config.get('wgPageName') !== '特別:白紙ページ/PrivateSandbox') {
return;
}
document.title = 'Private sandbox';
$('#firstHeading').text('Private sandbox');
var api = new mw.Api();
$('#mw-content-text').empty().append(
$('<div>').attr('id', 'ps-preview'),
$('<textarea>').val(mw.user.options.get('userjs-pvt-sandbox'))
.attr({ id: 'ps-textarea', cols: 80, rows: 25, tabindex: 1, accesskey: ',' })
.css({ 'margin': '20px 0 10px 0', 'font-family': mw.user.options.get('editfont') }),
$('<button>').text('保存').click(function() {
$('#ps-status').text('セーブ中').css('color', 'blue');
var text = $('#ps-textarea').val();
api.saveOption('userjs-pvt-sandbox', text).then(function() {
$('#ps-status').empty();
$('#ps-lastsaved').text('Last saved at ' + new Date().toLocaleString());
mw.user.options.set('userjs-pvt-sandbox', text);
}, function(err) {
$('#ps-status').text('保存に失敗しました: ', err).css('color', 'red');
});
}),
$('<button>').text('プレビューを表示').click(function() {
$('#ps-status').text('Retrieving preview').css('color', 'blue');
var text = $('#ps-textarea').val();
api.get({
action: 'parse',
text: text,
title: 'PrivateSandbox',
prop: 'text|categorieshtml',
disableeditsection: '1',
formatversion: '2'
}).then(function(json) {
$('#ps-status').empty();
$('#ps-preview').html(json.parse.text + json.parse.categorieshtml);
}, function(err) {
$('#ps-status').text('Failed to fetch preview: ', err).css('color', 'red');
});
}).css({ 'padding-left': '5px' }),
$('<div>').attr('id', 'ps-status'),
$('<div>').attr('id', 'ps-lastsaved')
);
window.onbeforeunload = function(e) {
if( $('#ps-textarea').val() !== mw.user.options.get('userjs-pvt-sandbox') ) {
e.returnValue = 'Your changes have not been saved';
return e.returnValue;
}
};
});