我正在将一个可导航的网站移动到一个iframe,现在还有其他框架围绕着它。
现在一切正常但是现在在Safari中,当主iframe中的链接被点击时,iframe会暂时变为空白,然后加载页面。通常,用户只会注意到已更改的元素的更改。因此主网站模板似乎没有重新加载。
这就是网站在iframe之外的行为方式,在Firefox中,尽管现在处于iframe状态,但它的行为仍然如此。
有没有办法阻止Safari每次在iframe中点击链接时从头开始重新加载整个页面?
答案 0 :(得分:0)
答案已经过测试并且非常严重,请注意!
所以Safari白色闪烁只发生在头部或正文中以及来自同一域的Javascript文件中。
因此,您可以在外部域中正常包含Javascript文件,并且没有闪烁,将其更改为您自己的域并且它会闪烁。
如果你在身体中包含本地javascript文件会有更少的怪异,那么在它完全消失之后会有一个较小的闪烁。
这一定是个错误!
下面是一个基本示例,单击该链接会导致闪烁。
测试页面HTML:
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="shortcut icon" href="inzu.ico" >
<meta charset="UTF-8">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
</head>
<body>
<iframe id="iframe" src="testframe.html" style="height:600px"/>
</body>
</html>
闪烁框架:
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<script src="/something.js" type="text/javascript"></script>
<style>
body{
background:red;
}
</style>
</head>
<body>
<a href="testframe.html">TEST</a>
</body>
</html>
没有闪烁的帧:
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<style>
body{
background:red;
}
</style>
</head>
<body>
<a href="testframe.html">TEST</a>
</body>
<script src="/something.js" type="text/javascript"></script>
</html>