2206
редагувань
Admin (обговорення | внесок) (Hero: кикер ← Країна над заголовком міста (back-навігація)) |
Admin (обговорення | внесок) (Back-лінк ← Назад на звичайних внутрішніх сторінках) |
||
| Рядок 122: | Рядок 122: | ||
} | } | ||
} | } | ||
}); | |||
// «← Назад» на звичайних внутрішніх сторінках (не головна, не міста, не | |||
// службові). Повертає в історію браузера; якщо зайшли ззовні — на головну | |||
// (беремо href лого). Гейт по cityHero, щоб не було гонки з page-has-hero. | |||
$(function () { | |||
if (mw.config.get("wgNamespaceNumber") !== 0) return; | |||
if (mw.config.get("wgIsMainPage")) return; | |||
if (mw.config.get("wgAction") !== "view") return; | |||
if (cityHero[mw.config.get("wgPageName") || ""]) return; | |||
var heading = document.querySelector(".mw-first-heading, .firstHeading, #firstHeading"); | |||
if (!heading || document.querySelector(".page-back-link")) return; | |||
var logo = document.querySelector(".mw-logo, .mw-logo-link, #p-logo a, .branding-box a"); | |||
var fallback = (logo && logo.getAttribute("href")) || "/"; | |||
var back = document.createElement("a"); | |||
back.className = "page-back-link"; | |||
back.href = fallback; | |||
back.textContent = "\u2190 Назад"; | |||
back.addEventListener("click", function (e) { | |||
var ref = document.referrer || ""; | |||
if (ref.indexOf(location.origin) === 0 && history.length > 1) { | |||
e.preventDefault(); | |||
history.back(); | |||
} | |||
}); | |||
heading.parentNode.insertBefore(back, heading); | |||
}); | }); | ||