У веб-розробці існує кілька способів зробити елемент (наприклад, кнопку або div) посиланням за допомогою JavaScript-події onClick. Вибір методу залежить від того, як повинна відкриватися сторінка: у тій же вкладці чи в новій.
Найпростіший і найпопулярніший спосіб — використання властивості window.location.href. Це імітує звичайний клік по посиланню.
<button onclick="window.location.href='https://www.overcod.net';">
Перейти
</button>
Якщо вам потрібно, щоб посилання відкрилося в новому вікні або вкладці, використовуйте метод window.open().
<button onclick="window.open('https://www.overcod.net', '_blank');">
Відкрити у новому вікні
</button>
Якщо перед переходом потрібно виконати якийсь код (наприклад, зберегти дані або відправити метрику), краще винести логіку у функцію.
<div onclick="goToPage()" style="cursor:pointer; border:1px solid #000; padding:10px;">
Клікни на цей блок
</div>
<script>
function goToPage() {
console.log("Логіка перед переходом...");
window.location.assign("https://www.overcod.net");
}
</script>
Важливі поради:
Додайте cursor: pointer: Якщо ви робите посиланням не <a> і не <button>, користувач не зрозуміє, що на елемент можна натиснути. Додайте цей стиль у CSS, щоб при наведенні курсор змінювався на «ручку».
SEO та доступність: Пошукові роботи не завжди переходять за посиланнями, створеними через onclick. Якщо це критично важлива навігація, краще використовувати стандартний тег <a href="...">.
Метод .assign() та .replace():
location.assign("url") — зберігає поточну сторінку в історії (можна натиснути кнопку «Назад»).
location.replace("url") — видаляє поточну сторінку з історії (кнопка «Назад» не поверне користувача).
Цей прийом позбавляє користувача різкого білого екрана при переході. Ми плавно приховуємо контент поточної сторінки перед тим, як відправити користувача за посиланням.
<button onclick="smoothRedirect('https://www.overcod.net')" style="padding: 10px 20px; cursor: pointer;">
Плавний перехід
</button>
<script>
function smoothRedirect(url) {
document.body.style.transition = "opacity 0.5s ease";
document.body.style.opacity = "0";
setTimeout(() => {
window.location.href = url;
}, 500);
}
</script>
Це критично важливо для сторінок з формами, опитуваннями або особистими кабінетами. Якщо користувач випадково натисне на кнопку виходу, скрипт переспитає його про наміри.
<button onclick="safeRedirect('https://www.overcod.net')" style="padding: 10px 20px; color: white; background: red; border: none; cursor: pointer;">
Залишити кабінет
</button>
<script>
function safeRedirect(url) {
const isConfirmed = confirm("Ви впевнені, що хочете залишити сторінку? Незбережені дані будуть втрачені.");
if (isConfirmed) {
window.location.assign(url);
}
}
</script>
Висувний каталог праворуч на CSS і JavaScript
129
Select в HTML: прихований placeholder, підсвічування і динамічний індикатор терміновості
216
Як виявити блокувальник реклами на сайті за допомогою JavaScript
243
Залишити відповідь