Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何制作这个js脚本,使它不会';不要用eval?_Javascript_Security - Fatal编程技术网

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)