Entrambi emettere segnalazioni JSLint e JSHint quando incontrano una dichiarazione etichettata cui identificatore corrisponde la seguente espressione regolare:L'etichetta "javascript:" può causare problemi?
/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i
Ad esempio, il seguente frammento di codice genera un avviso "JavaScript URL" da JSLint e un javascript "Etichetta' 'si presenta come un URL JavaScript" avvertimento da JSHint (la funzione wrapper è inutile, ma JSLint non piace dichiarazioni che non sono etichettati funzionano con ambito e genera un avviso diverso):
function example(x, y) {
javascript:
while (x) {
while (y) {
break javascript;
}
}
}
per quanto posso Dite, nessun browser se ne preoccupa, anche quando sembra imme diatamente dopo il protocollo "javascript:" in un bookmarklet. Ad esempio, il seguente sempre sembra funzionare (solo incollare nella barra degli indirizzi come ogni 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; }
Può l'identificativo etichetta "javascript:" (o qualsiasi altra stringa che potrebbe corrispondere a quello regex) mai hanno causato eventuali problemi (alcuni browser antichi forse?) che giustificano gli avvertimenti generati? Perché vengono generati questi avvisi?
Oh, l'ironia, 'rompere javascript' ... +1 – user123444555621
@ Pumbaa80 - Haha, non avevo' lo leggo così! Grazie. –