2011-05-25 118 views
0

腳本推理: 根據瀏覽器檢測到的寬度和高度重新載入各種CSS腳本。重新加載需要重新加載其他JavaScript作爲瀏覽器的窗口正在調整大小。發現問題: IE喜歡不斷循環。IE和JavaScript:通過調整大小重新加載窗口

與其他腳本的兼容性: 瀏覽器,火狐,Safari工作

腳本使用:

<body onResize="window.location.href = window.location.href;"> 

有人請拿出一個更好的解決方案或建議!這必須適用於Safari,IE和FireFox。

可能其他如果邏輯基於什麼類型的瀏覽器?

SOLUTIONS下方(JQUERY):window.resize event firing in Internet Explorer

$(document).ready(function(){ 

var winWidth = $(window).width(), 
winHeight = $(window).height(); 

$(window).resize(function(){ 

onResize = function() { 
//The method which sets the LEFT css property which triggers 
//window.resize again and it was a infinite loop 
setWrapperPosition($mainWrapper.parent()); 
} 

//New height and width 
var winNewWidth = $(window).width(), 
winNewHeight = $(window).height(); 

// compare the new height and width with old one 
if(winWidth!=winNewWidth || winHeight!=winNewHeight) 
{ 
window.clearTimeout(resizeTimeout); 
resizeTimeout = window.setTimeout(onResize, 10); 
} 
//Update the width and height 
winWidth = winNewWidth; 
winHeight = winNewHeight; 
}); 
}); 
+6

缺陷是根據頁面大小加載CSS的設計。 – epascarello 2011-05-25 19:17:56

+0

谷歌針對「CSS媒體查詢」... – Pointy 2011-05-25 19:18:29

+0

另一種方法是,人工分割CSS,並在尺寸更改處理程序中的「」或「」上設置類。 – Pointy 2011-05-25 19:19:29

回答

0

你會的方式更好,如果你沒有立足於瀏覽器的大小你的CSS。

您可以使用Javascript/jQuery來調整窗口onResize事件的大小,我必須在過去一次這樣做,並且它工作正常。

+0

您是否有解決問題的方法?同時請提供您提供的腳本示例以及解釋。 – user763349 2011-05-25 19:26:13

+0

這個問題不需要像你所要求的解決方案。像這樣重新加載頁面是不好的做法。 – Blender 2011-05-25 19:27:07

1

我會使用:

window.location.reload() 

重新加載頁面。

此外,我不確定onresize是一個廣泛支持的事件。

相反,我會用一個定時器做(來源這裏http://jsfiddle.net/ACpTm/4/


但我真的不會建議任何重裝由於造型的頁面。這是一種不好的做法,用戶不喜歡它,特別是如果它們的帶寬有限。

您能否描述爲什麼您需要這樣做?我們可以提供一個更通用的解決方案,而不是這個。

+0

我並沒有真正進入細節,但我正在制定一個項目,統計和信息不斷地顯示在員工的各種決議上。人們會接近或遠離。由於顯示中的細節,我無法使用CSS百分比。人們將在不同的距離使用不同的顯示器。 – user763349 2011-05-25 19:32:54

+1

這就是我的意思。你可以在CSS中做到這一點,而不需要任何JS黑客攻擊。你能提供一個示例頁面或什麼? – Blender 2011-05-25 19:34:10

+0

所以你在談論做像Joomla這樣的事情。我不能使用1-100%。空間非常有限,不能使用它。我必須使用JavaScript。如果你可以請提供一個例子,我將不勝感激。 – user763349 2011-05-25 19:39:49