注意: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
- Firefox / Safari: ⇧ Shift を押しながら「再読み込み」をクリックするか、Ctrl + F5 または Ctrl + R を押してください(Macでは ⌘ Cmd + R)
- Google Chrome: Ctrl + ⇧ Shift + R を押してください(Macでは ⌘ Cmd + ⇧ Shift + R)
- Internet Explorer: Ctrl を押しながら「最新の情報に更新」をクリックするか、Ctrl + F5 を押してください
- Opera: 「ツール → 設定」からキャッシュをクリアしてください。
$( function() {
'use strict';
console.log( 'test.js Loaded!' );
const $rev = $( '#curEnRevision' );
const $diff = $( '#diff' );
const dPage = $rev.data( 'page' );
const dRivision = $diff.data( 'revision' );
const ns = mw.config.get( 'wgNamespaceNumber' );
const title = mw.config.get( 'wgTitle' );
const enApiPath = 'https://minecraft.gamepedia.com/api.php';
const jaApiPath = 'https://minecraft-ja.gamepedia.com/api.php';
const failedHTML = '<span class="error">[取得に失敗しました]</span>';
if ( !$rev.length ) {
return;
}
function getRevisionsJSON( pagename ) {
return $.getJSON( enApiPath, {
origin: '*',
action: 'query',
format: 'json',
prop: 'revisions',
indexpageids: '1',
titles: pagename,
rvprop: 'ids'
} );
}
function getEnLinkJSON() {
return $.getJSON( jaApiPath, {
action: 'query',
format: 'json',
prop: 'langlinks',
indexpageids: '1',
titles: mw.util.wikiUrlencode( title ),
lllang: 'en'
} );
}
getEnLinkJSON.done( function( data ) {
let pageid;
let pagename;
try {
pageid = data.query.pageids[ 0 ];
} catch ( _ ) {
return $rev.html( failedHTML );
}
try {
pagename = data.query.pages[ pageid ].langlinks[ 0 ][ '*' ];
} catch ( _ ) {
pagename = dPage ? dPage
: /^[\x01-\x7E]+$/.test( title ) ? title
: null;
}
getRevisionsJSON( pagename )
.done( function( _data ) {
let _pageid;
let revision;
try {
_pageid = _data.query.pageids[ 0 ];
revision = _data.query.pages[ _pageid ].revisions[ 0 ].revid;
} catch ( _ ) {
return $rev.html( failedHTML );
}
if ( revision ) {
$rev.html( revision );
$diff.html(
'<a href="//minecraft.gamepedia.com/index.php?' +
'title=' + pagename + '&diff=' + revision + '&oldid=' + dRivision +
'">差分</a>'
);
} else {
return $rev.html( failedHTML );
}
} );
} );
} );