Beiden JSLint und JSHint Warnungen Problem, wenn sie stoßen auf eine benannte Anweisung, deren Kennung entspricht den folgenden regulären Ausdruck:Kann das Label "javascript:" irgendwelche Probleme verursachen?
/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i
Zum Beispiel der folgende Snippet erzeugt eine „JavaScript-URL“ Warnung von JSLint und ein „Label‚javascript 'sieht aus wie eine JavaScript-uRL“Warnung von JSHint (die Funktion Wrapper ist nicht notwendig, aber JSLint nicht etikettierte Anweisungen wie, die nicht funktionieren-scoped und wirft eine andere Warnung):
function example(x, y) {
javascript:
while (x) {
while (y) {
break javascript;
}
}
}
Soweit ich kann Sag, kein Browser kümmert sich darum, auch wenn es sofort erscheint direkt nach dem "javascript:" Protokoll in einem Bookmarklet. Zum Beispiel scheint die folgend immer zu arbeiten (Paste einfach in die Adressleiste wie jede Bookmarklet):
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; }
Könnte die Label-Kennung „javascript:“ (oder eine andere Zeichenfolge, die diesen Regex würde) jemals verursacht hat irgendwelche Probleme (einige alte Browser vielleicht?), die die erzeugten Warnungen rechtfertigen würden? Warum werden diese Warnungen generiert?
Oh, die Ironie, 'brechen javascript' ... +1 – user123444555621
@ Pumbaa80 - Haha, ich hadn‘ t lesen Sie es so! Vielen Dank. –