Thành viên:Nvdtn19/Gadget-MapFrame.js
Chú ý: Sau khi lưu trang, có thể bạn sẽ phải xóa bộ nhớ đệm của trình duyệt để xem các thay đổi.
- Firefox / Safari: Nhấn giữ phím Shift trong khi nhấn Tải lại (Reload), hoặc nhấn tổ hợp Ctrl-F5 hay Ctrl-R (⌘R trên Mac).
- Google Chrome: Nhấn tổ hợp Ctrl-Shift-R (⇧⌘R trên Mac).
- Edge: Nhấn giữ phím Ctrl trong khi nhấn Làm tươi (Refresh), hoặc nhấn tổ hợp Ctrl-F5.
/* Usage: inserts an iframe into a div with id "mapdiv", in conjunction with Template:MapFrame
for embeddable dynamic maps. Relies on HTML5 data parameters. */
function insertIFrame() {
var exhtml = '//tools.wmflabs.org/wikivoyage/w/poimap2.php?';
// hide the map iframe by default - only show if gadget is enabled
$('#mapwrap').show();
var map = $('#mapdiv');
if ( map.length ) {
validateMap(map);
var exsrc = exhtml+'lat='+encodeURIComponent(map.data("lat"))+'&lon='+encodeURIComponent(map.data("long"))
+'&zoom='+encodeURIComponent(map.data("zoom"))+'&layer='+encodeURIComponent(map.data("layer"))+'&lang='+encodeURIComponent(mw.config.get('wgContentLanguage'))+'&name='+encodeURIComponent(mw.config.get('wgPageName'));
var ifstr = $( '<iframe></iframe>' ).attr( { src: exsrc, width: map.data("width"), height: map.data("height" ), style: "border:0" } );
map.html(ifstr);
if ( map.data("layer").indexOf('M') < 0 ) {
$('.vcard a').attr('href', function () { return this.href.replace('layer=M','layer='+map.data("layer")[0]) });
}
}
}
function validateMap(map) {
if (!$.isNumeric(map.data("lat"))) map.data("lat", 51.47766);
if (!$.isNumeric(map.data("long"))) map.data("long", -0.00115);
if (!$.isNumeric(map.data("zoom")) && map.data("zoom") != 'auto') map.data("zoom", 14);
if (!$.isNumeric(map.data("height"))) map.data("height", 420);
if (!$.isNumeric(map.data("width"))) map.data("width", 420);
if (map.data("layer").length > 8) map.data("layer", 'M');
}
jQuery(document).ready(insertIFrame);