Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript更改iframe src,导致整个页面刷新_Javascript_Html_Iframe - Fatal编程技术网

使用Javascript更改iframe src,导致整个页面刷新

使用Javascript更改iframe src,导致整个页面刷新,javascript,html,iframe,Javascript,Html,Iframe,我使用堆栈溢出已经很多年了,从来没有遇到过我没有找到解决方案的问题。但是我完全被卡住了,所以我真的注册发布了这个问题 我有一个带有几个不同iFrame的索引页。每个iframe的内容有时可以动态地更改在另一个iframe中显示的页面。我的所有javascript都在索引级别,因此我在iframe中的调用都是对父级的,以更改另一个iframe的src 我从一些用户那里得到反馈,当他们点击一个链接/按钮改变另一个iFrame时,它会重置整个页面,就像他们点击刷新按钮并从页面开始重新开始一样。我自己从

我使用堆栈溢出已经很多年了,从来没有遇到过我没有找到解决方案的问题。但是我完全被卡住了,所以我真的注册发布了这个问题

我有一个带有几个不同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>
我尝试将时间表页面标记改为span而不是a href,我在preventDefault()中添加了我不必首先添加的内容。我尝试在函数中添加return和return false,因为我发现有地方说这可能是个问题。我的javascript最初是
document.getElementById(“frmStopTime”).src=parent.strenginement+“/stop\u times/”+tripID+“.xml”我只是因为不知道还能尝试什么而更改了它。所有这些都没有造成任何不同

所有这些变化对我来说都没有什么不同,而且它一直工作稳定,在正确的时间加载正确的页面而不重置页面

如果恰好有什么不同,那么加载的框架中的大部分内容都是带有xsl样式表的xml数据


我不是一个专业的开发人员,我的代码可能不符合当前的标准或最佳实践,但我能说的是,它工作得很好。如有任何想法,将不胜感激。谢谢。

onclick中的
return
会阻止在它之后执行任何操作,因此永远不会触发
preventDefault
。也许交换它们会有帮助(所以先预防默认,后返回)
<a href="#" onclick="return parent.openStopTime('18399922', '5');event.preventDefault();"> 5:36</a>
function openStopTime(whichTrip, whichStopTimePoint) {

document.getElementById("frmStopTime").contentWindow.location.assign("../../../" + strEnvironment + "/stop_times/" + whichTrip + ".xml")
changeFocus('StopTime');

return false;
}