Показать сообщение отдельно
  #1 (permalink)  
Старый 08.07.2014, 19:04
Новичок на форуме
Отправить личное сообщение для Arcon Посмотреть профиль Найти все сообщения от Arcon
 
Регистрация: 08.07.2014
Сообщений: 7

innerHTML из <iframe> по событию onchange тега <select>
Добрый день! Мой код:
<select id="s1" name="s1">
    <option>1111</option>
    <option>2222</option>
    <option>3333</option>
    <option>4444</option>
    <option>5555</option>
    <option>6666</option>
</select>
<iframe id="myframe" name="myframe"></iframe>
<p name='pr' id='pr'>1234</p>
<script>
function prov(){
var stroka='/text' + s1.selectedIndex + '.html';
document.getElementById("myframe").src = stroka;
var frm=document.getElementById("myframe").contentDocument.body.innerHTML;
pr.innerHTML=frm;
}
s1.onchange = prov;
</script>


Смысл: по событию onchange в зависимости от выбранной опции должен текст html документа должен отобразиться в абзаце.
Обрабатывается с запаздыванием, т.е. в переменную stroka присваивается текст, который содержится в iframe до запуска функции, а не который присваивается в процессе выполнения функции.
При этом если написать так:
<select id="s1" name="s1">
    <option>1111</option>
    <option>2222</option>
    <option>3333</option>
    <option>4444</option>
    <option>5555</option>
    <option>6666</option>
</select>
<iframe id="myframe" name="myframe"></iframe>
<p name='pr' id='pr'>1234</p>
<script>
function prov(){
var stroka='/text' + s1.selectedIndex + '.html';
document.getElementById("myframe").src = stroka;
alert("chto ugodno");
var frm=document.getElementById("myframe").contentDocument.body.innerHTML;
pr.innerHTML=frm;
}
s1.onchange = prov;
</script>


То работает как надо.
Подскажите в чем дело. Я только начинаю познавать JS

PS Извиняюсь за такое название темы. Не нашел как его изменить после создания

Последний раз редактировалось Arcon, 08.07.2014 в 19:06. Причина: Накосячил с названием темы
Ответить с цитированием