javascript - 使用 Javascript 更改 iframe src 导致整个页面刷新
问题描述
我多年来一直使用堆栈溢出,并且从未遇到过我找不到解决方案的问题。然而,我完全被困住了,所以我实际上注册了发布这个问题。
我有一个包含几个不同 iframe 的索引页面。每个 iframe 的内容有时可以动态更改在其他 iframe 中显示的页面。我所有的 javascript 都在索引级别,所以我在 iframe 中的调用是对父级的,以更改另一个 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";
是我更改的,只是因为我不知道还能尝试什么。这些都不是一种方式或另一种方式。
所有这些变化对我来说都没有什么不同,而且它一直都能正常工作,在正确的时间加载正确的页面而无需重置页面。
如果碰巧有任何不同,加载的框架中的大部分内容都是带有 xsl 样式表的 xml 数据。
我不是专业的开发人员,我的代码可能不符合当前的标准或最佳实践,但据我所知它是有效的。任何想法将不胜感激。谢谢。
解决方案
推荐阅读
- python - 当 groupby 时,Pandas 数据框每组取组最大值
- c++ - 如何在 QT/c++ 中删除 json 对象键和值?
- ios - 切换深色和浅色模式时导航栏和tabor不会改变他的颜色
- azure - 使用访问令牌通过 Powershell 连接到 Exchange Online
- python - 使用python求和和平均
- php - Eloquent 构建器实例 PHP LARAVEL 上不存在属性 [title]
- python-3.x - 如何使用python重命名本地目录中的多个文本文件?
- spring-integration - 如何避免使用 spring 集成邮件加载电子邮件的内容
- reactjs - 反应状态未在 callabck 内更新
- java - Gradle 将编译 spring-boot-starter-web 更改为 implementation 导致错误:包 org.springframework.http 不存在