我有一个JavaScript函数

<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>


但是什么也没发生。身体的背景是一段时间。任何想法可能在哪里错误?我所知道的是该脚本是真实的,并且100%有效。

最佳答案

onload="toggle_color("
       ^             ^



看到属性值的开头吗?看到属性值的结尾吗?

要将"用作由"字符分隔的HTML属性值中的数据,您需要将其表示为字符引用:&quot;



或者,使用'字符分隔JS字符串或分隔属性值。



更好的是,完全避免内在事件属性。除了使报价变得痛苦之外,他们还有all kinds of gotchas的麻烦。

而是将事件处理程序与JavaScript绑定。

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

addEventListener("load", setDefaultColour)

10-04 22:40