Изменение iframe src с помощью Javascript, вызывающее обновление всей страницы

#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 он никогда не запускается. Возможно, это поможет поменять их местами (сначала предотвратите дефолт, вернитесь после)