2017-06-14 39 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