Доброго времени суток! Возникла такая проблема. Не работает редирект в js
<a id="aaa" onclick="href();" href="#"></a>
Пробовал этими способами, но ничего не помогает
<script language="JavaScript">
function href() {
window.location.replace("http://stackoverflow.com");
document.location.href='http://stackoverflow.com'
}
</script>
Проблема в том, что inline обработчики выполняются в контексте HTML элемента.
то есть, все, что используется, сначала ищется в html элементе, и в данном случае href - это свойство элемента a, а не функция.
Проверить это можно просто, достаточно поменять код на следующий
<a id="aaa" onclick="console.log(this.href===href, href);" href="#">Нажми меня</a>
Для исправления - достаточно изменить имя функции обработчика:
<script language="JavaScript">
function func() {
console.log('я делаю редирект');
document.location.href = 'http://stackoverflow.com'
}
</script>
<a id="aaa" onclick="func();" href="#">Нажми меня</a>
Либо навешивать обработчик с помощью функции addEventListener
function func() {
console.log('я делаю редирект');
document.location.href = 'http://stackoverflow.com'
}
document.getElementById('aaa').addEventListener('click', func);
<a id="aaa" href="#">Нажми меня</a>
function href() {
window.location.href = 'http://stackoverflow.com';
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей