2012-11-21 37 views
12

我使用JSHint,並得到了以下錯誤:以腳本爲目標的URL有什麼問題?

Script URL. 

其中我注意到,由於發生在這一行有含javascript:... URL字符串。

我知道JSHint抱怨說,因爲scripturl選項已設置,並且由於我的代碼庫相當大,所以現在我必須先取消它。

不過,我不明白使用腳本URL的問題是什麼?

+0

這是不好的做法。 – epascarello

+6

@epascarello:他在問爲什麼。 – SLaks

+3

因此,爲什麼我沒有把它作爲答案!你們真棒! – epascarello

回答

19

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

爲了執行javascript: URL,瀏覽器必須啓動JS解析器並解析URL的文本。
這是一個緩慢而昂貴的過程。

此外,組裝javascript: URL(或包含源代碼的其他字符串)是一項棘手的任務,容易出現XSS漏洞。

最後,混合代碼和URL違反了內容和行爲(代碼)的分離。

+0

如果您將腳本放在'