Javascript 在Chrome扩展下拉列表中显示倒计时
我试图在分机的下拉列表中显示倒计时,但我有两个问题: A) 我的脚本返回一个错误,因为它无法从下拉列表的内容中按id获取元素 B) 即使关闭下拉列表并重新打开,如何保持倒计时运行 这是我的JS:Javascript 在Chrome扩展下拉列表中显示倒计时,javascript,google-chrome-extension,google-chrome-app,Javascript,Google Chrome Extension,Google Chrome App,我试图在分机的下拉列表中显示倒计时,但我有两个问题: A) 我的脚本返回一个错误,因为它无法从下拉列表的内容中按id获取元素 B) 即使关闭下拉列表并重新打开,如何保持倒计时运行 这是我的JS: // variables for time units var days, hours, minutes, seconds; // get tag element var countdown = document.getElementById("countdown"); // update the
// variables for time units
var days, hours, minutes, seconds;
// get tag element
var countdown = document.getElementById("countdown");
// update the tag with id "countdown" every 1 second
setInterval(function () {
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
// do some time calculations
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
// format countdown string + set tag value
countdown.innerHTML = days + "d, " + hours + "h, "
+ minutes + "m, " + seconds + "s";
}, 1000);
在HTML中,我有:
<span id="countdown"></div>
我得到的错误是:
未捕获类型错误:无法将属性“innerHTML”设置为null
非常感谢您的帮助!谢谢 A)我怀疑您的代码(在脚本中)放在“头”部分的某个地方。在这种情况下,您需要做的就是将所有代码放在window.onload=function(){…}
或domcontentload
侦听器中
B) 这更复杂。我认为最好的解决方案是在后台页面创建计数器,并每秒将消息发送到弹出页面。谢谢!在A)的情况下,我在加载元素后将脚本放在主体中,从而解决了问题。但我怀疑你的建议也一样好。关于B)我会试试看它是否有效。谢谢你迄今为止的帮助!