предварительная обработка 2 функций onclick

#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">