Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行2 JavaScript时出现问题”;“满负荷”;功能_Javascript_Html - Fatal编程技术网

运行2 JavaScript时出现问题”;“满负荷”;功能

运行2 JavaScript时出现问题”;“满负荷”;功能,javascript,html,Javascript,Html,我尝试在网页上运行两个JavaScript“onload”函数:一个可视计时器和一个自动刷新函数。我已经在我的网页中实现了这两个功能,但尽管计时器运行,但除非我从脚本中删除可视计时器功能,否则自动刷新功能将不会运行 以下是网页的代码: <!DOCTYPE html> <HTML> <HEAD> <script type="text/JavaScript"> <!-- function timedRefresh(timeoutPeriod) {

我尝试在网页上运行两个JavaScript“onload”函数:一个可视计时器和一个自动刷新函数。我已经在我的网页中实现了这两个功能,但尽管计时器运行,但除非我从脚本中删除可视计时器功能,否则自动刷新功能将不会运行

以下是网页的代码:

<!DOCTYPE html>
<HTML>
<HEAD>
<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
<TITLE>test</TITLE>
</head>
<body onload="JavaScript:timedRefresh(15000); timedText();">

<script>
window.onload = timedText;
function timedText() {
var txt = document.getElementById('txt'),
 counter = 15;
var timer = setInterval(function () {
 if(counter === 0) return clearInterval(timer);
 txt.value = counter + " seconds";
 counter--;
}, 1000);
}
</script>
<input type="text" id="txt" />

</body></HTML>

测试
window.onload=timedText;
函数timedText(){
var txt=document.getElementById('txt'),
计数器=15;
变量计时器=设置间隔(函数(){
如果(计数器===0)返回clearInterval(计时器);
txt.value=计数器+秒数;
计数器--;
}, 1000);
}

如果您能帮助解决此问题,我们将不胜感激。

问题是第二个,而不是第一个。这就是您应该用来添加事件的内容

window.addEventListener('load', timedText, false);
window.addEventListener('load', function(){timedRefresh(15000);}, false);
如果您需要支持较旧的IEs,您需要查看


但是看看代码,为什么你要运行两个设置超时,而你需要做的就是当它达到零时调用重定向

尝试一个小改动:调用
timedRefresh()
窗口内。onload的timetext()
函数不在body onload中

<!DOCTYPE html>
<HTML>
<HEAD>
<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
<TITLE>test</TITLE>
</head>
<body>

<script>
window.onload = timedText;
function timedText() {
var txt = document.getElementById('txt'),
 counter = 15;
timedRefresh(15000);
var timer = setInterval(function () {
 if(counter === 0) return clearInterval(timer);
 txt.value = counter + " seconds";
 counter--;
}, 1000);
}
</script>
<input type="text" id="txt" />

</body></HTML>

测试
window.onload=timedText;
函数timedText(){
var txt=document.getElementById('txt'),
计数器=15;
timedRefresh(15000);
变量计时器=设置间隔(函数(){
如果(计数器===0)返回clearInterval(计时器);
txt.value=计数器+秒数;
计数器--;
}, 1000);
}

您可以使用addEventListener方法添加多个onload事件,如下所示:

window.addEventListener("load", timedText, false);
window.addEventListener("load", timedRefresh(15000), false);

function timedText() {
        var txt = document.getElementById('txt'),
            counter = 15;
        var timer = setInterval(function() {
            if (counter === 0) return clearInterval(timer);
            txt.value = counter + " seconds";
            counter--;
        }, 1000);
}

function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",
    timeoutPeriod);
}
您可以找到有关addEventListener的更多信息


这是。

第二个优先于第一个
timedRefresh(15000)
位于正文“onload”中的
timedText()
之前,并且计时文本是唯一有效的文本,除非我删除它,然后计时刷新才有效。