脚本定位URL有什么问题?

时间:2012-11-21 16:44:44

标签: javascript validation jshint

我正在使用JSHint,它出现以下错误:

Script URL.

我注意到这发生了,因为在此特定行上有一个包含javascript:...网址的字符串。

我知道JSHint抱怨说因为设置了scripturl选项,并且因为我的代码库很大,所以我现在必须取消它。

但是,我不明白使用脚本网址的问题是什么?

1 个答案:

答案 0 :(得分:22)

javascript:网址是'eval is evil'的一部分。

为了执行javascript: URL,浏览器必须启动JS解析器并解析URL的文本。
这是一个缓慢而昂贵的过程。

此外,汇编javascript: URL(或包含源代码的其他字符串)是一项棘手的任务,容易出现XSS漏洞。

最后,混合代码和URL违反了内容和行为(代码)的分离。