Я пытаюсь настроить кнопку, которая при нажатии будет перенаправлять на новую ссылку. Я перепробовал так много разных вариантов и просто не могу заставить их работать.
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, но я смог добавить тег тега к кнопке, и это решило проблему.
<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>
Расскажите, пожалуйста, подробнее о том, что не работает? ГДЕ пытаетесь открыть? Это всплывающее заблокированное окно? У вас есть ошибки в консоли? Пожалуйста, предоставьте более подробную информацию.
Я чувствую, что мне нужно добавить больше контекста. Функция работает, но только перезагружает текущую страницу, а не перенаправляет вас на другую страницу. Если я использую window.open, он работает, но я не хочу, чтобы он открывал новое окно.
window.location не является функцией, вы должны получить сообщение об ошибке в этой строке.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Прежде всего, это против доступности и своего рода обмана для пользователя на основе элементов html, используемых на странице для их функциональности. В вашем случае, если пользователь переходит на другую страницу, он должен быть создан как элемент привязки вместо кнопки IMO. Если вам нужен вид кнопки, просто используйте CSS, чтобы оформить ее соответствующим образом.
Это не ответ. В лучшем случае это должен быть комментарий (и у вас есть много репутации для этого). Доступность не имеет ничего общего с вопросом ОП.
Перед тем, как проголосовать против, проверьте, нет ли в добавленной информации вводящей в заблуждение информации. Я упомянул очень простое правило: если его не соблюдать, доступность нарушается. К вопросу, почему это должно быть реализовано таким образом, не добавляется никакого контекста. Если в случае, если такого требования нет, он вполне может перейти к основному без каких-либо осложнений - это то, что я пытаюсь сказать всем, кто просматривает этот ответ.
Ваш вопрос очень расплывчатый, вот рабочий код - надеюсь, это то, что вам нужно
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, я предполагаю, что вы хотите открыть ссылку в новой вкладке.
Она добавила комментарий, в котором говорится, что он не хочет открывать новое окно / вкладку.
Вкратце, это может быть связано с тем, что сценарий выполняется до загрузки страницы. Попробуйте переместить скрипт в конец страницы.
Если бы сценарий выполнялся до загрузки страницы, она не увидела бы добавляемую им кнопку.
Этот фрагмент кода должен быть внизу страницы и удалить оператор return из кода, чтобы страница открывалась в новой вкладке.
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');
});
Поэтому я не уверен, что вызвало щелчок при использовании window.location, но я смог добавить тег тега к кнопке, и это решило проблему.
<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>
Что не работает? Что ты пробовал? Пожалуйста, включите эту информацию в свой пост.