Как сделать редирект в js?

249
26 ноября 2016, 17:51

Доброго времени суток! Возникла такая проблема. Не работает редирект в 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>
Answer 1

Проблема в том, что 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>

Answer 2
function href() {
    window.location.href = 'http://stackoverflow.com';
}
READ ALSO
Передача значения из формы в javascript

Передача значения из формы в javascript

Есть расширения chromeВ самом расширении ссылка на страницу настроек с формой

314
Не правильно работает календарь

Не правильно работает календарь

Задание: Нужно сделать так, чтобы в поле можно было ввести дату не меньше чем послезавтрашний день и не больше чем на пол года больше, например...

237
Подсвечивание пустых input?

Подсвечивание пустых input?

Не подсвечиваются пустой input

309
BabelJS и кириллица

BabelJS и кириллица

Подскажите, использую следующий код

236