Javascript 我如何制作这个js脚本,使它不会';不要用eval?
我有这个密码Javascript 我如何制作这个js脚本,使它不会';不要用eval?,javascript,security,Javascript,Security,我有这个密码 var clsStopwatch = function() { var startAt = 0; var lapTime = 0; var now = function() { return (new Date()).getTime(); }; this.start = function() { startAt =
var clsStopwatch = function() {
var startAt = 0;
var lapTime = 0;
var now = function() {
return (new Date()).getTime();
};
this.start = function() {
startAt = startAt ? startAt : now();
};
this.stop = function() {
lapTime = startAt ? lapTime + now() - startAt : lapTime;
startAt = 0;
};
// Reset
this.reset = function() {
lapTime = startAt = 0;
};
// Duration
this.time = function() {
return lapTime + (startAt ? now() - startAt : 0);
};
};
var x = new clsStopwatch();
var $time;
var clocktimer;
function pad(num, size) {
var s = "0000" + num;
return s.substr(s.length - size);
}
function formatTime(time) {
var h = m = s = ms = 0;
var newTime = '';
h = Math.floor( time / (60 * 60 * 1000) );
time = time % (60 * 60 * 1000);
m = Math.floor( time / (60 * 1000) );
time = time % (60 * 1000);
s = Math.floor( time / 1000 );
ms = time % 1000;
newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2) + ':' + pad(ms, 3);
return newTime;
}
function show() {
$time = document.getElementById('time');
update();
}
function update() {
$time.innerHTML = formatTime(x.time());
}
function start() {
clocktimer = setInterval("update()", 1);
x.start();
}
function stop() {
x.stop();
clearInterval(clocktimer);
}
function reset() {
stop();
x.reset();
update();
}
它运行秒表
我的CSP conf有这个不安全评估
指令。它是不安全的,所以我删除了它。我的代码不起作用,在控制台日志中说
clocktimer = setInterval("update()", 1);
不允许运行。如何使其在没有不安全eval指令的情况下运行
我不知道该怎么做,因为我对JS真的很陌生。“update()”
只是一个字符串,无法调用。您需要传递函数
//引用函数(可能更好)
时钟计时器=设置间隔(更新,1)
//使用lambda调用函数(在某些情况下更好,但这次不行)
时钟计时器=设置间隔(()=>更新(),1)