18

我正在使用 JSHint,它收到以下错误:

Script URL.

我注意到发生这种情况是因为在此特定行上有一个包含javascript:...URL 的字符串。

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

不过,我不明白使用脚本 URL 有什么问题?

4

1 回答 1

28

javascript:URL 是“eval is evil”的一部分。

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

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

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

于 2012-11-21T16:47:03.410 回答