MediaWiki:GeoHack.js
提供: miniwiki
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Internet Explorer: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
- Opera: メニュー → 設定 (Mac では Opera → 環境設定) に移動し、プライバシーとセキュリティ → 閲覧データを消去 → キャッシュされた画像およびファイル からキャッシュをクリアしてください。
/**
* The file is used by GeoHack on Tool Labs (linked from [[Template:GeoTemplate]]).
*
* This file is not loaded within a wiki context. Standard libraries (jQuery, mediawiki.js etc) are not available.
*/
/**
* Copy of standard library function
*/
function appendCSS(text) {
var s = document.createElement('style');
s.type = 'text/css';
s.rel = 'stylesheet';
if (s.styleSheet) s.styleSheet.cssText = text //IE
else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null
document.getElementsByTagName('head')[0].appendChild(s);
}
window.onload = function() {
/* Add row hover effect */
appendCSS(".directory tr:hover {background:#fdc !important;}");
}
var head = document.getElementsByTagName('head')[0];
var style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = '//maps.wikimedia.org/leaflet/leaflet.css';
head.appendChild(style);
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '//maps.wikimedia.org/leaflet/leaflet.js';
head.appendChild(script);
var OSM_class_R = /\bOSM:([\d.+-]+)_([\d.+-]+)_([\d.+-]+)_(\w+)/;
function embedOpenStreetMap() {
clearInterval(osmtimer);
var osmTarget = document.getElementById('osmEmbed');
if (osmTarget && OSM_class_R.exec(osmTarget.className)) {
var lat = 1.0 * RegExp.$1,
lon = 1.0 * RegExp.$2,
zoom = RegExp.$3;
var map = L.map('osmEmbed').setView([lat, lon], zoom);
map.attributionControl.setPrefix( '' );
L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {
attribution: 'Wikimedia maps beta | Map data © <a href="http://osm.org/copyright">OpenStreetMap contributors</a>'
}).addTo(map);
L.marker([lat, lon]).addTo(map);
}
}
osmtimer = setInterval("if (document.getElementById('osmEmbed') && L) { embedOpenStreetMap(); }", 200);
setTimeout('clearInterval(osmtimer)', 5000);