2013-03-06 65 views
1

在我的網頁我下面是在身體的onLoad叫javascript函數:的JavaScript不工作的IE8

function changeDivWidth() 
{ 
    d = document.getElementById('background'); 
    document.getElementById("backgroundImg").style.height = window.innerHeight+"px"; 
    imgWidth = document.getElementById("backgroundImg").width; 
    marginLeft = ($(window).width() - imgWidth)/2; 
    d.style.width = imgWidth+"px"; 
    d.style.left = marginLeft+"px"; 
    document.getElementById("backgroundImg").style.visibility="visible"; 
    document.getElementById("menu").style.visibility="visible"; 
} 

這個腳本基本上採用的瀏覽器頁面的高度,並將其設置爲高度元素。 這在所有瀏覽器中工作都很好,除了在IE7和IE8中未加載腳本的地方。 你能給我一個解決方案嗎?

感謝

+0

該腳本未加載?或者它抓住的高度/寬度是錯誤的?任何錯誤消息?我們可以看到它的一個[jsFiddle](http://jsfiddle.net)嗎? – Chad 2013-03-06 19:25:00

+0

提示變量的基本調試可能會引導您回答原因。爲什麼你要混合jQuery和常規的DOM有點奇怪,它會導致你的問題。 – epascarello 2013-03-06 19:29:27

+0

使用jquery或其他js-dom庫重寫它,以避免瀏覽器不兼容。 – 2013-03-06 19:29:29

回答

2

window.innerHeight不IE8及以下工作。試用document.body.clientHeight

編輯:等一下...你在第6行?:

marginLeft = ($(window).width() - imgWidth)/2; 

使用jQuery如果你是,那麼使用$(window).height()這個高度來代替。

+0

編輯前的答案是我的問題的答案! 非常感謝您的幫助! – Ultramito 2013-03-06 23:22:28