我正在使用JSHint,它得到以下
错误:
Script URL.@H_301_3@
我注意到发生了,因为在这个特定的行,有一个字符串包含一个javascript:… URL.
我知道JSHint抱怨说,因为scripturl选项被设置,并且由于我的代码库相当大,所以我现在必须取消设置.
不过,我不明白使用脚本URL的问题是什么?
javascript:URL是“eval is evil”的一部分.
为了执行javascript:URL,浏览器必须启动JS解析器并解析URL的文本.
这是一个缓慢而昂贵的过程.
此外,组装javascript:URL(或包含源代码的其他字符串)是一个棘手的任务,容易出现XSS漏洞.
最后,混合代码和URL违反了内容和行为(代码)的分离.