javascript href очищает страницу IE - PullRequest
0 голосов
/ 06 марта 2019

У меня есть следующий HTML.когда я нажимаю на ссылку в IE, он возвращает возвращаемое значение на пустой странице.в chrome он просто запускает функцию, не касаясь страницы.Можно ли что-то сделать, чтобы IE вел себя как хром в этом отношении?

<html>
<body>
<script type="text/javascript">
function foo(){
  return true;
}
</script>
<a title="call foo" href="javascript:foo()">return true</a>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 06 марта 2019
<html>
<body>
<script type="text/javascript">
function foo(){
  event.preventDefault();
  return true;
}
</script>
<a title="call foo" href="javascript:foo()">return true</a>
</body>
</html>
0 голосов
/ 07 марта 2019

Вы можете использовать метод event.preventDefault (), чтобы предотвратить событие гиперссылки по умолчанию в событии click.Как это:

<script type="text/javascript">
    function foo(e) {
        event.preventDefault();
        ////get the href attribute.   
        //var href = document.getElementById("btn").getAttribute("href");
        ////display the page. You could also using "window.open(href)" to open a new tab to display the page.
        //window.location = href;
        return true;
    }
</script>
<a title="call foo" id="btn" href="https://www.google.com/" onclick="foo(this);">return true</a>
0 голосов
/ 06 марта 2019

Смысл URL-адреса схемы javascript: заключается в том, что он запускает некоторый код, который генерирует некоторые данные, к которым затем перемещается браузер.

Если вы просто хотите запустить JS при щелчке чего-либо: не используйте ссылку.

Используйте правильный инструмент для работы.

function foo(){
  return true;
}

document.querySelector("button").addEventListener("click", foo);
<button title="call foo">return true</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...