Jam*_*ice 12 javascript jslint jshint
当JSLint和JSHint遇到标识符语句时,它们都会发出警告,这些语句的标识符与以下正则表达式匹配:
/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i
Run Code Online (Sandbox Code Playgroud)
例如,以下代码段从JSLint生成"JavaScript URL"警告,并且"标签'javascript'看起来像javascript url"来自JSHint的警告(函数包装器是不必要的,但JSLint不喜欢不带功能的标签语句-scoped并提出不同的警告):
function example(x, y) {
javascript:
while (x) {
while (y) {
break javascript;
}
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,没有浏览器关心它,即使它立即出现在书签中的"javascript:"协议之后.例如,以下似乎总是有效(只需像任何书签一样粘贴到地址栏中):
javascript:(function () { javascript:for(var i = 0; i < 2; i++) { alert(i); break javascript; } }());
javascript:javascript:for(var i = 0; i < 2; i++) { alert(i); break javascript; }
Run Code Online (Sandbox Code Playgroud)
标签标识符"javascript:"(或任何其他与该正则表达式相匹配的字符串)是否曾引起任何问题(某些古老的浏览器可能?),以保证产生警告?为什么会产生这些警告?