2013-07-06 49 views
0

我的代碼似乎在Firefox上運行完美。但是當我想在IE或Chrome上運行它時,我的背景似乎是空白的。我的代碼有問題嗎?還是僅僅在我測試過的瀏覽器上不支持?隨機背景更改只適用於Firefox?

<html> 
<head> 
    <script> 
    window.onload = function() { 
    var imgs = [ 
     'images/1.jpg', 
     'images/2.jpg', 
     'images/3.jpg', 
     'images/4.jpg', 
     'images/5.jpg', 
     'images/6.jpg' 
    ]; 
    document.body.style = 'background: url(' + imgs[Math.round(Math.random() * imgs.length)] + ') no-repeat ; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;'; 
    } 
    </script> 
    <link rel="stylesheet" type="text/css" href="styles.css" /> 
</head> 

<body> 
    <?php include ("header.php"); ?> 
    <div align="center" > 
     <?php include ("main.php"); ?> 
     <?php include ("footer.php"); ?> 
    </div> 
</body> 

+0

某種錯誤信息會有幫助。 – Bart

+1

在控制檯中的任何錯誤? –

回答

0

使用style.cssText會更好嗎?

document.body.style.cssText = 'background: url(' + imgs[Math.floor(Math.random() * imgs.length)] + ') no-repeat ; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;'; 

而且,似乎Math.round(Math.random() * imgs.length)有時會產生imgs.length作爲結果和超過數組邊界,所以我建議Math.floor來代替。

+0

是的你的權利在這兩個部分。感謝您的注意!這工作完美無瑕。 – Johannes

0

嘗試這樣

<script> 
function my_function() { 
var imgs = [ 
    'images/1.jpg', 
    'images/2.jpg', 
    'images/3.jpg', 
    'images/4.jpg', 
    'images/5.jpg', 
    'images/6.jpg' ]; 
document.body.style = 'background: url(' + imgs[Math.round(Math.random() * imgs.length)] + ') no-repeat ; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;'; 

//also you can try like 
    document.getElementByTagName('body').style = 'background: url(' + imgs[Math.round(Math.random() * imgs.length)] + ') no-repeat ; 
    -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;'; 
} 
    my_function(); //Just call this 
</script> 

它會調用每個頁面load.Because window.onload可能並不適用於所有的瀏覽器都支持my_function()及其版本

+1

這似乎不太可能''window.onload'可能不被支持。 – Bart

3

你語法錯誤。它應該是:

var body = document.body; 
body.style.background = 'url(' + imgs[Math.round(Math.random() * imgs.length)] + ') no-repeat'; 
body.style.webkitBackgroundSize = 'cover'; 

http://jsfiddle.net/CGsxB/

一次作爲一個字符串可能工作在Firefox設置了一堆屬性,但一般而言,您應分別設置單獨的樣式屬性。

+0

謝謝!這工作 – Johannes