#javascript #html #iframe
#javascript #HTML #iframe
Вопрос:
Я использовал stack overflow в течение многих лет и никогда не сталкивался с проблемой, для которой я не нашел решения. Однако я полностью застрял, поэтому я действительно зарегистрировался, чтобы опубликовать эти вопросы.
У меня есть индексная страница с несколькими разными фреймами. Содержимое каждого iframe иногда может динамически изменять, какая страница отображается в одном из других iframe. Весь мой javascript находится на уровне индекса, поэтому мои вызовы внутри iframe относятся к родительскому, чтобы изменить src другого iframe.
Я получал отзывы от некоторых пользователей о том, что когда они нажимают на ссылку / кнопку, которая изменяет один из других фреймов, он сбрасывает всю страницу, как будто они нажимают кнопку обновления и начинают заново с начала страницы. Я никогда не мог воспроизвести эту проблему самостоятельно, но пользователи, у которых она есть, получают ее последовательно. Я проводил с ними удаленные сеансы, и они не делают ничего другого, но испытывают поведение при обновлении страницы. Я использую Chrome, и пользователи, у которых возникла проблема, используют ту же сборку Chrome, но один из них сказал, что при использовании Firefox проблема не возникает.
Вот пример фреймов на индексной странице
<iframe id="frmStopTime" src="stop_times_blank.html"></iframe>
<iframe id="frmTimetable" src="timetable.html"></iframe>
Вот вызов на странице расписания.
<a href="#" onclick="return parent.openStopTime('18399922', '5');event.preventDefault();"> 5:36</a>
И вот функция javascript.
function openStopTime(whichTrip, whichStopTimePoint) {
document.getElementById("frmStopTime").contentWindow.location.assign("../../../" strEnvironment "/stop_times/" whichTrip ".xml")
changeFocus('StopTime');
return false;
}
Я попытался изменить тег страницы расписания на span вместо href, я добавил в preventDefault(), с которого мне не нужно было начинать. Я попытался добавить return и return false в функцию, потому что я нашел места, в которых говорилось, что это может быть проблемой. Изначально мой javascript был document.getElementById("frmStopTime").src = parent.strEnvironment "/stop_times/" tripID ".xml";
изменен только потому, что я не знал, что еще попробовать. Ничто из этого не имело значения и не имело значения так или иначе.
Все эти изменения не имели для меня никакого значения, и он всегда работал стабильно, загружая правильные страницы в нужное время без сброса страницы.
Если это произойдет по-другому, большая часть содержимого в загружаемых фреймах — это XML-данные с таблицами стилей xsl.
Я не профессиональный разработчик, и мой код может не соответствовать текущим стандартам или лучшим практикам, но он работает, насколько я могу судить. Любые мысли будут оценены. Спасибо.
Комментарии:
1.
return
В onclick предотвращает выполнение чего-либо после него, поэтомуpreventDefault
он никогда не запускается. Возможно, это поможет поменять их местами (сначала предотвратите дефолт, вернитесь после)