我有一段 javascript,它是从 http://www.developphp.com/view.php?tid=1248 被黑客攻击的。我看到“ undefined variable - 广播”错误。
function cdtd(broadcast) {
/* expected date format is Month DD, YYYY HH:MM:SS */
var nextbroadcast = new Date(broadcast);
var now = new Date();
var timeDiff = nextbroadcast.getTime() - now.getTime();
if (timeDiff <= 0) {
clearTimeout(timer);
document.getElementById("countdown").innerHTML = "<a href=\"flconlineservices.php\">Internet broadcast in progress<\/a>";
/* Run any code needed for countdown completion here */
}
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;
document.getElementById("daysBox").innerHTML = days + " d";
document.getElementById("hoursBox").innerHTML = hours + " h";
document.getElementById("minsBox").innerHTML = minutes + " m";
// seconds isn't in our html code (javascript error if this isn't commented out)
/*document.getElementById("secsBox").innerHTML = seconds + " s";*/
var timer = setTimeout('cdtd(broadcast)',1000);
}
“广播”是从带有此 <script type="text/javascript">cdtd("<?php echo $nextbroadcast; ?>");</script>
的页面传递的。 $nextbroadcast 基于用户查看页面的日期/时间。
我试过var broadcast;
, var broadcast = "";
,和var broadcast = null;
。每当我尝试在函数之前声明变量时,它就会破坏脚本。
我做错了什么吗?该脚本工作正常,但我不想出现错误。
最佳答案
更改以下行:
vartimer = setTimeout('cdtd(广播)',1000);
对此:
var timeout = setTimeout(function() { cdtd(广播); }, 1000);
关于Javascript 在函数之前 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319806/