Les outils de développement de Chrome sont un excellent ensemble d'outils que j'aime utiliser. Malheureusement, je suis tombé sur un problème très étrange ces derniers temps lorsque je rafraîchis la page tout en gardant la fenêtre des outils de développeur ouverte: Chrome suspend l'exécution du javascript et pointe vers la ligne spécifiée ci-dessous.

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;
}

Une exception entraîne une pause du script, bien que l'exception elle-même soit positionnée dans un bloc try-catch. Existe-t-il un moyen de modifier ce comportement? Ou y a-t-il quelque chose que j'ai manqué?

12
Leonard 6 déc. 2011 à 16:00

5 réponses

Meilleure réponse

Il s'agit peut-être d'un bogue connu, vérifiez ceci: http://bugs.jquery.com/ticket/7535. J'ai trouvé cette solution là-bas, j'espère qu'elle vous aidera:

 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 );
4
tildy 6 déc. 2011 à 12:13

Si vous utilisez Chrome, procédez comme suit:

Cliquez sur l'icône Paramètres dans l'inspecteur (le rouage). En général, il y a un bouton appelé "Gérer le blackboxing du framework ..."

Vous pouvez l'utiliser pour ignorer certains scripts d'être évalués dans le débogueur. Voici un regex simple pour attraper des trucs jQuery. /jquery(.*)\.js$

3
Matt Kenefick 22 déc. 2014 à 22:20

Je viens de résoudre ce problème (dans mon cas, cela pourrait être différent). J'ai accidentellement cliqué sur le bouton "Pause des exceptions" dans la console de Chrome. Celui-ci: https://developers.google.com/chrome- developer-tools / docs / scripts-breakpoints # js_exceptions

Voici l'emplacement de ce petit bouton Pause sur les exceptions facile à manquer, et ses trois états à bascule:

Image showing small "Pause on Exceptions" button

37
user56reinstatemonica8 28 déc. 2012 à 12:06

Si quelqu'un recherche

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

Devrait rediriger ici.

4
Hawk 12 août 2013 à 12:32

J'ai trouvé cette question à la recherche de Safari, donc je suppose que la réponse peut être utile:

Dans Safari Web Inspector, cela peut être réalisé de la même manière en accédant à l'onglet Points d'arrêt (ctrl-7). Désélectionnez "Toutes les exceptions" et sélectionnez "Toutes les exceptions non détectées".

1
Pum Walters 28 janv. 2013 à 15:55