Ввод ввода, вызывающий изменение ссылки

Такого рода ссылки возвращаются к предыдущему вопросу, который я задал. Цель состояла в том, чтобы изменить iframe src с помощью ввода текста. После множества экспериментов это сработало. Однако при этом возникла новая проблема. После того, как я ввожу ссылку и отправляю ее, она добавляет /?link=linkhere в конец страницы и обновляет ее. Затем, после обновления, исходный src возвращается, что делает его бесполезным. Вот самый важный код:

 <iframe
  id = "minecraftFrame"
  src = "//classic.minecraft.net"
  height = "500"
  width = "800"
  frameborder = "0"
  scrolling = "no"
  allowfullscreen = "true">
</iframe>
<input type = "text" id = "myInput" name = "input">
<button class = "button" onclick = "changeChannel()">Go</button>
<script>   
function changeChannel(){
  document.getElementById("iFrame").src = document.getElementById("myInput").value;
}
</script>

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

исходный пост для создания чейнджера src: stackoverflow.com/questions/56370104/…

Yonokid 31.05.2019 02:58
function changeChannel(e){ e.preventDefault();
Rikin 31.05.2019 04:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
40
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

function changeChannel() {
  event.preventDefault();
  // ...
}

Отредактировано здесь: sprocken.com/game/minecraft Ничего не изменилось. Добавление (e) во входные данные также не имело значения.

Yonokid 31.05.2019 05:17

@Yonokid изменил код выше и протестировал на вашем сайте, похоже, работает.

Rikin 31.05.2019 15:31

Ваш код включал это --- document.getElementById("iFrame").src идентификатор iframe — «minecraftFrame», а не «iFrame». или вы можете использовать document.querySelector('iFrame')

и остановите перезагрузку страницы с помощью

  function changeChannel(e) {
  e.preventDefault();
  // Code goes here
}

Другие вопросы по теме