2015-10-30 37 views
0

正常工作,我有一個JavaScript函數JavaScript函數不是身體的onload

<script language="javascript"> 
function toggle_color(color1, color2, cycle_time, wait_time) { 
    setInterval(function first_color() { 
     document.body.style.backgroundColor = color1; 
     setTimeout(change_color, wait_time); 
    }, cycle_time); 

    function change_color() { 
    document.body.style.backgroundColor = color2; 
    } 
} 
</script> 

我呼籲它在我身體的onload

<body onload="toggle_color("#61beb3", "#90a2c6", 4000, 2000);"> 
Lorem Ipsum Dolar. 
</body> 

但什麼也沒有發生。身體的背景是一陣子。任何想法的錯誤可能是?我所知道的是,劇本是真實的,100%的工作。

+0

通過查看提交的問題的顏色格式,您可以立即看到您有非轉向的qutoes。看看字符串是不是都是一種顏色?它應該都看起來像看起來不錯和棕色:) –

+1

請注意'語言'屬性已被棄用了很長時間。使用'type =「text/javascript」' - 見https://developer.mozilla.org/en/docs/Web/HTML/Element/script –

回答

4
onload="toggle_color(" 
    ^   ^

屬性值的末尾,請參閱您的屬性值的開始?查看屬性值的結尾?

要使用"作爲由"字符分隔的HTML屬性值中的數據,您需要將其表示爲字符引用:&quot;


另外,使用'字符或者分隔您的JS字符串或分隔您的屬性值。


更好的是,完全避免內在事件屬性。除了處理報價帶來的痛苦之外,他們還有all kinds of gotchas

用JavaScript代替事件處理程序。

function setDefaultColour() { 
    toggle_color("#61beb3", "#90a2c6", 4000, 2000); 
} 

addEventListener("load", setDefaultColour) 
2

您需要使用',而不是",因爲"指定html標記

<script language="javascript"> 
 
function toggle_color(color1, color2, cycle_time, wait_time) { 
 
    setInterval(function first_color() { 
 
     document.body.style.backgroundColor = color1; 
 
     setTimeout(change_color, wait_time); 
 
    }, cycle_time); 
 

 
    function change_color() { 
 
    document.body.style.backgroundColor = color2; 
 
    } 
 
} 
 
</script> 
 
<body onload="toggle_color('#61beb3', '#90a2c6', 4000, 2000);"> 
 
Lorem Ipsum Dolar. 
 
</body>

+0

哦,謝謝你。爲什麼使用'''而不是'''使用'''? –

+0

如果你使用'''開始,當你放置另一個'''時,代碼解釋器認爲這是更接近的。「所以你的代碼:'onload =」toggle_color (''是錯誤的,因爲唯一被執行的是'toggle_color'(' –

+0

'\\'不是HTML中的轉義字符。 – Quentin

相關問題