Safari - 在页面更改时导致闪烁的iframe

时间:2017-06-14 23:33:58

标签: html css safari

我正在将一个可导航的网站移动到一个iframe,现在还有其他框架围绕着它。

现在一切正常但是现在在Safari中,当主iframe中的链接被点击时,iframe会暂时变为空白,然后加载页面。通常,用户只会注意到已更改的元素的更改。因此主网站模板似乎没有重新加载。

这就是网站在iframe之外的行为方式,在Firefox中,尽管现在处于iframe状态,但它的行为仍然如此。

有没有办法阻止Safari每次在iframe中点击链接时从头开始重新加载整个页面?

1 个答案:

答案 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>