「MediaWiki:Gadget-TemplateInshokuten.js」の版間の差分
MediaWikiインターフェイスページ
その他の操作
編集の要約なし |
編集の要約なし |
||
| 63行目: | 63行目: | ||
} | } | ||
} | } | ||
const tiktokdiv = document.querySelector('. | const tiktokdiv = document.querySelector('.tiktok-id'); | ||
if( | if(tiktokdiv) { | ||
const username = | const username = tiktokdiv.textContent.trim(); | ||
if(username) { | if(username) { | ||
const a = document.createElement('a'); | const a = document.createElement('a'); | ||
a.href = `https:// | a.href = `https://tiktok.com/@${username}/`; | ||
a.target = "_blank"; | a.target = "_blank"; | ||
a.rel = "noopener noreferrer"; | a.rel = "noopener noreferrer"; | ||
| 80行目: | 80行目: | ||
a.appendChild(img); | a.appendChild(img); | ||
tiktokdiv.parentNode.replaceChild(a, tiktokdiv); | |||
} | } | ||
} | } | ||
2025年12月18日 (木) 16:09時点における最新版
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);
});