Domanda

Gli strumenti per sviluppatori di Chrome sono un eccellente set di strumenti che mi piace usare. Sfortunatamente, mi sono imbattuto in un problema molto strano in ritardo quando aggiorno la pagina mantenendo aperta la finestra degli strumenti per sviluppatori: Chrome fa una pausa l'esecuzione JavaScript e indica la riga specificata di seguito.

try {
        // This should fail with an exception
        // Gecko does not error, returns false instead
        matches.call(document.documentElement, "[test!='']:sizzle"); // this is where it breaks

} catch (pseudoError) {
    pseudoWorks = true;
}

Un'eccezione fa sì che lo script si fermi, nonostante l'eccezione stessa sia posizionata all'interno di un blocco di cattura. C'è un modo per modificare questo comportamento? O c'è qualcosa che mi sono perso?

È stato utile?

Soluzione

Forse è un bug noto, controlla questo: http://bugs.jquery.com/ticket/7535 . Ho trovato questa soluzione lì, spero che aiuti:

 try {
// This should fail with an exception
// Gecko does not error, returns false instead
// <orig. $jquery-1.5:>
// matches.call( document.documentElement, "[test!='']:sizzle" );
// <proposal to Ticket #7535, 2011-03-24:>
  if( ! html.mozMatchesSelector || document.currentScript ){
    matches.call( html, "[test!='']:sizzle" );
  }
//else{
// /*FF lt 4*/
//}


} catch( pseudoError ) {
    pseudoWorks = true;
  }
  // <testing only>
  // alert('MalformedSelectorException thrown: ' + pseudoWorks );

Altri suggerimenti

Ho appena risolto questo problema (nel mio caso, potrebbe essere diverso). Ho fatto clic accidentalmente sul pulsante "Pausa sulle eccezioni" nella console di Chrome. Questo: https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_exceptions

Ecco la posizione di quella piccola pausa facile da misciare su Eccezioni e i suoi tre stati a disattivazione:

Image showing small "Pause on Exceptions" button

Se qualcuno cerca

div.querySelectorAll("*,:x");

dovrebbe reindirizzare qui.

Se stai usando Chrome, fallo:

Fare clic sull'icona delle impostazioni nell'ispettore (COG). In generale, c'è un pulsante chiamato "Gestisci framework Blackboxing ..."

Puoi usarlo per ignorare alcuni script da valutare nel debugger. Ecco un semplice regex per catturare le cose jQuery. /jquery(.*)\.js$

Ho trovato questa domanda che lo cerca relativa a Safari, quindi immagino che la risposta possa essere utile:

In Safari Web Inspector questo può essere ottenuto in modo simile andando alla scheda Breakpoints (CTRL-7). Deselezionare "tutte le eccezioni" e selezionare "tutte le eccezioni non insegnate".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top