#javascript #function #iframe #multiple-instances
#javascript #функция #iframe #несколько экземпляров
Вопрос:
Кажется, я не могу заставить это работать так, как я хочу. У меня есть iframe с содержимым в нем, и я хочу иметь возможность нажать кнопку Далее, чтобы iframe продвинулся на 1, чтобы он отображал URL-адрес под фреймом, а также продвигался на 1.
Я знаю о проблемах с обратным вызовом URL-адреса iframe, но каждый раз он увеличивается только на 1, поэтому я подумал, что если я просто выведу URL clicks, он будет соответствовать фактическому URL-адресу страницы.
По отдельности я заставил оба кода работать, но когда я собрал их вместе, похоже, это не сработало.
<script>
var c=0;
var url="http://www.example.com/myfolders/";
var clicks=0;
var burl="http://www.example.com/myfolders/";
function func1(){
document.getElementById("myframe").src = url c;
c ;
}
function func2() {
clicks = 1;
document.getElementById("myframe").innerHTML = burl clicks;
};
</script>
<iframe id="myframe" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com/myfolders/0" width="100%" height="300"></iframe>
<input type=button onclick="func1();func2();" value="Next">
Ответ №1:
Ваш код получает iframe (через document.getElementById("myframe")
) и устанавливает его innerHTML. Вы не можете этого сделать. После вашего iframe создайте элемент, который будет действовать как легенда, и установите его innerHTML в URL iframe. Это было бы что-то вроде этого (код тоже улучшен):
<script>
var c=0;
var url="http://www.example.com/myfolders/";
var clicks=0;
var burl="http://www.example.com/myfolders/";
function updateFrame() {
clicks ;
c ;
document.getElementById("myframe").src = url c;
document.getElementById("framelegend").innerHTML = burl clicks;
};
</script>
<iframe id="myframe" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com/myfolders/0" width="100%" height="300"></iframe>
<span id="framelegend"></span>
<input type=button onclick="updateFrame();" value="Next">
Комментарии:
1. Это действительно помогло. Спасибо за объяснение, я наклонился к чему-то новому!
Ответ №2:
почему бы не вызвать функцию в другой функции.Может быть, можно сделать что-то вроде этого.Надеюсь, это поможет решить вашу проблему
function func1(){
document.getElementById("myframe").src = url c;
c ;
}
function func2() {
clicks = 1;
document.getElementById("myframe").innerHTML = burl clicks;
}
function todo(){
c1();
func2();
}
<input type=button onclick="todo();" value="Next">