Такого рода ссылки возвращаются к предыдущему вопросу, который я задал. Цель состояла в том, чтобы изменить 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.
function changeChannel(e){ e.preventDefault();
Вам нужно предотвратить дефолт, т.е. остановить всплытие событий, которое приводит к перезагрузке. Посмотрите, работает ли это для вас. Похоже, так и должно быть, когда вы отправляете форму, что приведет к обновлению страницы.
function changeChannel() {
event.preventDefault();
// ...
}
Отредактировано здесь: sprocken.com/game/minecraft Ничего не изменилось. Добавление (e) во входные данные также не имело значения.
@Yonokid изменил код выше и протестировал на вашем сайте, похоже, работает.
Ваш код включал это --- document.getElementById("iFrame").src идентификатор iframe — «minecraftFrame», а не «iFrame». или вы можете использовать document.querySelector('iFrame')
и остановите перезагрузку страницы с помощью
function changeChannel(e) {
e.preventDefault();
// Code goes here
}
исходный пост для создания чейнджера src: stackoverflow.com/questions/56370104/…