2017-06-14 38 views
0

我正在将可导航网站移动到iframe中,该iframe现在具有围绕它的其他框架。Safari - 导致页面更改闪烁的iframe

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

这就是网站用来在iframe之外行事的方式,尽管现在在iframe中,但它在Firefox中表现得如此。

有没有什么办法可以阻止Safari每次单击iframe中的链接时从头重新加载整个页面?

回答

0

答案已经过测试,并且是完全严肃的,被警告!

所以Safari白色闪烁只发生在头部或身体以及来自同一个域的JavaScript文件中。

因此,您可以像正常情况一样从外部域包含Javascript文件并且不闪烁,将其更改为您自己的域并且闪烁。

如果您在本体中包含本地JavaScript文件,则会出现更少的奇怪现象,因此闪烁较小,在本体完全消失之后。

这一定是一个错误!

下面是一个基本的例子,点击链接导致闪烁。

测试页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> 
<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"> 
<style> 
body{ 
    background:red; 
} 
</style> 
</head> 
<body> 

<a href="testframe.html">TEST</a> 
</body> 
<script src="/something.js" type="text/javascript"></script> 
</html> 
+0

顺便说JS文件可以是空的,甚至不存在并发生相同的错误。 – Guesser