我找到了这个脚本:
<script language="Javascript" TYPE="text/javascript">
var container = document.getElementById('dl');
var seconds = 10;
var timer;
function countdown() {
seconds--;
if(seconds > 0) {
container.innerHTML = 'Please wait <b>'+seconds+'</b> seconds..';
} else {
container.innerHTML = '<a href="download.php">Download</a>';
clearInterval(timer);
}
}
timer = setInterval(countdown, 1000);
</script>
我想用它来调用它:
<input type="button" onclick="countdown()" id="dl" value="Download" />
但没有任何反应。我究竟做错了什么?我启用了JavasScript,但单击按钮后没有任何反应。
答案 0 :(得分:1)
我通过将输入类型放在div标签中来修复您发布的代码,因此一旦您单击它并且计时器启动它就会删除“下载”按钮。
<div id="dl">
<input type="button" onclick="setInterval(countdown, 1000);" id="dl" value="Download" />
</div>
<script language="Javascript" TYPE="text/javascript">
var container = document.getElementById('dl');
var seconds = 10;
var timer;
function countdown() {
seconds--;
if(seconds > 0) {
container.innerHTML = 'Please wait <b>'+seconds+'</b> seconds..';
} else {
container.innerHTML = '<a href="File or Page Location">Download File</a>';
clearInterval(timer);
}
}
</script>
答案 1 :(得分:0)
脚本使用setInterval函数调用启动,并使用innerHTML属性将倒计时分配给元素。
如果要在按钮中显示,则应使用元素的value属性并更改行为(即:链接在那里不起作用)或使用span或div元素代替按钮。
答案 2 :(得分:0)
一些事情。首先,如果脚本是在html之前声明的,那么你可能会在getElementById调用上遇到错误,因为该元素尚未呈现。访问dom元素时,必须在加载dom后执行此操作,或者(最好)通过在绑定到文档onload事件的函数中运行脚本来执行此操作。
你的另一个问题是,一旦评估了代码,你对setInterval的调用会立即关闭倒计时,而你不希望它在按钮点击之前启动。试试这个:
<div id="dl"></div>
<input type="button" onclick="setInterval(countdown, 1000);" id="dl" value="Download" />
<script language="Javascript" TYPE="text/javascript">
var container = document.getElementById('dl');
var seconds = 10;
var timer;
function countdown() {
seconds--;
if(seconds > 0) {
container.innerHTML = 'Please wait <b>'+seconds+'</b> seconds..';
} else {
container.innerHTML = '<a href="download.php">Download</a>';
clearInterval(timer);
}
}
</script>
请注意,这不是很好的代码,但由于缺乏有关您网页的详细信息或您正在做的其他事情,这至少应该让您前进。