MediaWiki:Gadget-TemplateInshokuten.js
MediaWikiインターフェイスページ
その他の操作
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
function initGoogleMaps() {
document.querySelectorAll(".map-embed").forEach(function (el) {
const name = el.dataset.name;
if (!name) return;
const src = `https://www.google.com/maps/embed/v1/place?key=AIzaSyDOA7e6S9arQa6NvnsFYXxGjX9P_ycwoyM&q=${encodeURIComponent(name)}&zoom=16&maptype=roadmap&language=ja®ion=JP`;
const iframe = document.createElement("iframe");
iframe.width = "100%";
iframe.height = "400";
iframe.style.border = "0";
iframe.loading = "lazy";
iframe.allowFullscreen = true;
iframe.referrerPolicy = "no-referrer-when-downgrade";
iframe.src = src;
// iframeが読み込まれたらSkeletonを消す
iframe.addEventListener("load", function() {
el.classList.add("loaded");
});
el.appendChild(iframe);
});
}
// 店舗/飲食店テンプレート用JavaScript
if ( document.querySelector('.template-tenpo') ) {
const twitterdiv = document.querySelector('.twitter-id');
if(twitterdiv) {
const username = twitterdiv.textContent.trim();
if(username) { // 空文字なら生成しない
const a = document.createElement('a');
a.href = `https://twitter.com/${username}?ref_src=twsrc%5Etfw`;
a.className = "twitter-follow-button";
a.dataset.showCount = "false";
a.textContent = `Follow @${username}`;
twitterdiv.parentNode.replaceChild(a, twitterdiv);
const script = document.createElement('script');
script.async = true;
script.src = "https://platform.twitter.com/widgets.js";
script.charset = "utf-8";
document.body.appendChild(script);
}
}
const instagramdiv = document.querySelector('.instagram-id');
if(instagramdiv) {
const username = instagramdiv.textContent.trim();
if(username) {
const a = document.createElement('a');
a.href = `https://instagram.com/${username}/`;
a.target = "_blank";
a.rel = "noopener noreferrer";
const img = document.createElement('img');
img.src = "/images/3/3d/Instagram_Glyph_Gradient.png";
img.alt = "Instagram";
img.style.width = "50px";
img.style.height = "50px";
img.style.marginRight = "15px";
a.appendChild(img);
instagramdiv.parentNode.replaceChild(a, instagramdiv);
}
}
const tiktokdiv = document.querySelector('.tiktok-id');
if(tiktokdiv) {
const username = tiktokdiv.textContent.trim();
if(username) {
const a = document.createElement('a');
a.href = `https://tiktok.com/@${username}/`;
a.target = "_blank";
a.rel = "noopener noreferrer";
const img = document.createElement('img');
img.src = "/images/f/fa/TikTok-logo-RGB-Tag.png";
img.alt = "TikTok";
img.style.width = "50px";
img.style.height = "50px";
img.style.marginRight = "15px";
a.appendChild(img);
tiktokdiv.parentNode.replaceChild(a, tiktokdiv);
}
}
const facebookdiv = document.querySelector('.facebook-id');
if(facebookdiv) {
const username = facebookdiv.textContent.trim();
if(username) {
const a = document.createElement('a');
a.href = `https://facebook.com/${username}/`;
a.target = "_blank";
a.rel = "noopener noreferrer";
const img = document.createElement('img');
img.src = "/images/8/82/Facebook_Logo_Primary.png";
img.alt = "Facebook";
img.style.width = "50px";
img.style.height = "50px";
a.appendChild(img);
facebookdiv.parentNode.replaceChild(a, facebookdiv);
}
}
document.querySelectorAll(".wikitable p").forEach(function(p) {
if (!p.textContent.trim()) {
p.remove();
}
});
document.querySelectorAll(".wikitable tr").forEach(function(tr) {
const th = tr.querySelector("th");
const td = tr.querySelector("td");
if (!th || !td) return;
if (th.textContent.trim() === "郵便番号") {
// 郵便番号らしい数字のみ抽出
const match = td.textContent.replace(/\D/g, "").match(/^(\d{3})(\d{4})$/);
if (match) {
td.textContent = match[1] + "-" + match[2];
}
}
});
// DOM準備後に実行
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initGoogleMaps);
} else {
initGoogleMaps();
}
}
document.querySelectorAll(".streetview-placeholder").forEach(function(el) {
const url = el.getAttribute("data-url");
if (!url) return;
const iframe = document.createElement("iframe");
iframe.src = url;
iframe.width = "100%";
iframe.height = "100%";
iframe.style.border = "0";
iframe.loading = "lazy";
iframe.allowFullscreen = true;
iframe.referrerPolicy = "no-referrer-when-downgrade";
el.appendChild(iframe);
});
document.querySelectorAll(".streetview-api-placeholder").forEach(function(el) {
const name = el.getAttribute("data-name");
if (!name) return;
const src = `https://www.google.com/maps/embed/v1/streetview?key=AIzaSyDOA7e6S9arQa6NvnsFYXxGjX9P_ycwoyM&location=${name}`;
const iframe = document.createElement("iframe");
iframe.src = src;
iframe.width = "100%";
iframe.height = "100%";
iframe.style.border = "0";
iframe.loading = "lazy";
iframe.allowFullscreen = true;
iframe.referrerPolicy = "no-referrer-when-downgrade";
el.appendChild(iframe);
});