我在同一目录中有三个简单的
HTML文件:
的index.html
<html>
<head>
<title>Page 1</title>
</head>
<body>
<iframe src="page2.html"></iframe>
</body>
</html>
page2.html和page3.html(关于相同的内容)
<html>
<head>
<title>Page 2</title>
</head>
<body>
This is the content of page 2
</body>
</html>
<html>
<head>
<title>Page 3</title>
</head>
<body>
This is the content of page 3
</body>
</html>
index.html包含< iframe>指向其他两个HTML文件之一.
当我第一次加载index.html时,它按预期工作并打印“这是第2页的内容”.但是当我将src属性更改为“page3.html”并重新加载页面时,没有任何变化.它一直告诉我“这是第2页的内容”,即使它应该加载第3页.
但是,当我关闭选项卡并重新打开页面(index.html)时,它会工作并打印“这是第3页的内容”.但是,当我将其更改回page2.html时,它仍然适用于第3页.
那真是怪了.我猜浏览器正在缓存页面,或类似的东西.
当我添加:
<script>
document.write(document.querySelector("iframe").src);
</script>
然后,它打印正确的文件位置. (但是iframe的内容仍然是错误的.)
这意味着即使浏览器检测到文件已更改,但在重新加载页面时甚至不会重新加载iframe.
什么可能导致这种奇怪的行为?我该如何解决?
谢谢.
附:使用Firefox 29测试.
附: (2)所有文件都在我的电脑上,我没有把它们放在远处的服务器上.
最佳答案 尝试添加以下内容:
document.getElementById(FrameID).contentDocument.location.reload(true);
这会强制每次重新加载页面时重新加载iframe.
编辑:我尝试使用Chrome,它工作正常,即使没有脚本.