由于使用匿名功能使用setTimeout,我已经阅读了如何解决内容安全策略中unsafe eval
所需的答案。
但是我使用的脚本包含以下内容:-
$ = function (a) {
return /^f/.test(typeof a) ? /in/.test(b.readyState) ? setTimeout('$('+a+')', 9) : a() : new i(a)
}
我一生都无法解决如何将其转换为使用匿名函数的脚本,或者是否有办法重写它。
如果您需要查看更多代码,则该代码是ki.js的一部分。
我尝试过
return /^f/.test(typeof a) ? /in/.test(b.readyState) ? setTimeout(function(){'$('+a+')'}, 9) : a() : new i(a)
但是那显然是行不通的!我认为我只是睡眠不足,但是有人可以指出正确的方向!
答案 0 :(得分:1)
如果您要使用自己的匿名函数,则无需使用字符串引用。只需在其中使用普通代码即可。
(虽然不确定该内容安全策略,只是帮助语法。如果不能完全解决问题,我将删除答案并将其作为评论发布。)
$ = function (a) {
return /^f/.test(typeof a)
? /in/.test(b.readyState)
? setTimeout(function() { $(a); }, 9)
: a()
: new i(a);
};