Кнопка JavaScript со ссылкой - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь настроить кнопку, которая при клике будет перенаправлять на новую ссылку.Я перепробовал так много разных опций и просто не могу заставить его работать.

var button = document.createElement("button");
button.innerHTML = "$1.00";

divInnerElement.appendChild(button);

button.addEventListener ("click", function() {
  window.location('http://www.google.com','_blank');
  return false;
});  

Обновление: функция работает, но перезагружает только текущую страницу и перенаправляет вас на другую страницу.Если я использую window.open, он работает, но я не хочу, чтобы он открывал новое окно.

Обновление:

Так что я не уверен, что вызывало щелчок при использовании window.location, но я смог добавить aTag в кнопку, и это решило проблему.

<script>
var button = document.createElement("button");
var aTag = document.createElement('a');
aTag.setAttribute('href','http://www.google.com');
aTag.innerHTML = '$1.00';
button.appendChild(aTag);
divInnerElement.appendChild(button);

// button.addEventListener ("click", function() {
//   window.location.href = 'http://www.google.com';
// return false;
// });  
</script>

Ответы [ 5 ]

0 голосов
/ 16 октября 2018

Так что я не уверен, что вызывало щелчок при использовании window.location, но я смог добавить aTag в кнопку, и это решило проблему.

<script>
    var button = document.createElement("button");
    var aTag = document.createElement('a');
    aTag.setAttribute('href','http://www.google.com');
    aTag.innerHTML = '$1.00';
    button.appendChild(aTag);
    divInnerElement.appendChild(button);

    // button.addEventListener ("click", function() {
    //   window.location.href = 'http://www.google.com';
    // return false;
    // });  
    </script>
0 голосов
/ 16 октября 2018

Этот фрагмент кода должен быть в нижней части страницы и удалить оператор возврата из кода, чтобы страница была открыта в новой вкладке.

 var button = document.createElement("button");
 button.innerHTML = "$1.00";

 document.getElementById('divInnerElement').appendChild(button);

 button.addEventListener ("click", function() {
  window.open('http://www.google.com','_blank');

 }); 
0 голосов
/ 15 октября 2018

Ваш вопрос очень расплывчатый, вот рабочий код - надеюсь, это то, что вам нужно

Html:

<div id="divInnerElement"></div>

Javascript:

var button = document.createElement("button");
button.innerHTML = "$1.00";

document.getElementById('divInnerElement').appendChild(button);

button.addEventListener ("click", function() {
  window.open('http://www.google.com','_blank');
  return false;
});  

Я использовалwindow.open: поскольку вы вставили свой оригинальный фрагмент _blank, я предполагаю, что вы хотели бы открыть ссылку в новой вкладке.

0 голосов
/ 15 октября 2018

Вкратце это может быть связано с тем, что скрипт выполняется до загрузки страницы.Попробуйте переместить скрипт внизу страницы.

0 голосов
/ 15 октября 2018

Прежде всего это противоречит доступности и обману пользователя на основе HTML-элементов, используемых на странице для их функциональности.В вашем случае, если пользователь перемещается на другую страницу, он должен быть создан как элемент привязки вместо кнопки IMO.Если вам нужен внешний вид кнопки, просто используйте css, чтобы придать ей соответствующий стиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...