2014-02-23 43 views
1

我想表現出我的分機的下拉列表中選擇倒計時,但我有兩個問題:在瀏覽器擴展程序下拉顯示倒計時

A)我的腳本返回一個錯誤,因爲它無法通過編號從一開始元素下拉內容

B)即使關閉下拉並重新打開它,我如何保持倒計時運行?

這裏是我的JS:

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

我得到的錯誤是: 遺漏的類型錯誤:無法設置爲null的特性 '的innerHTML'

任何幫助真的很感激!謝謝 !!

回答

0

A)我懷疑你的代碼被放置在放置在「head」部分內部的某個腳本中。在這種情況下,您所要做的就是將所有代碼放入window.onload = function() { ... }DOMContentLoaded聽衆

B)這更復雜。我認爲最好的解決方案是在後臺頁面中創建計數器,並從中發送消息到每秒彈出頁面。

+0

謝謝德米特里!在A)的情況下,我在元素被加載後將腳本放置在體內,這解決了問題。但我懷疑你的建議是一樣的好。關於B)我會試一試,看看它是否有效。感謝您一直以來的幫助! –

相關問題