Ich versuche Weinre zu verwenden, um eine AngularJS-Anwendung zu debuggen, aber die Style-Inspektion funktioniert nicht. Ich kann Weinre verwenden, um Elemente auf der Seite auszuwählen, aber es zeigt nie die zugehörigen Stilinformationen, die von CSS-Selektoren stammen. Ich habe es auf AngularJS beschränkt (ich benutze Version 1.2.5) auf der Seite bricht Weinre Stil Inspektion. Ich habe ein paar Referenzen gefunden, dass Weinre nicht mit AngularJS arbeitet (https://issues.apache.org/jira/browse/CB-2651), aber die JIRAs sagen, dass es gelöst ist. Irgendwelche Ideen?Weinre Style Inspection funktioniert nicht mit AngularJS
Antwort
Sie "fixiert" es, indem sie die Ausnahme fangen und weitermachen. Offensichtlich wird das Problem durch (was Webkit denkt) ungültige CSS-Selektoren verursacht.
Fügen Sie die folgende Funktion, und es früh auf Ihrer Seite ausführen:
function whackWebkitMatchesSelector() {
var oldMatches = Element.prototype.webkitMatchesSelector
function newMatches(selector) {
try {
return oldMatches.call(this, selector)
}
catch (err) {
return false
}
}
Element.prototype.webkitMatchesSelector = newMatches
}
whackWebkitMatchesSelector()
Wie in https://issues.apache.org/jira/browse/CB-6161 vorgeschlagen kann ich jetzt die meisten inspizieren (wahrscheinlich nicht alle) Stile.
BTW, ich hatte das gleiche Problem mit Sencha Touch 1 und weinre, und diese Lösung löste es auch. Es war komisch, da ich einige der Stile sehen konnte, aber nicht alle. Nach dem Anwenden der oben genannten Funktion in index.html sind alle Stile aufgetaucht - eine Million Dank :) –
Ich weiß, diese Frage ist alt, aber ich habe über die gleiche kommen, wenn sie unter den Internet Explorer Debuggen 11. Ich habe aktualisiert die vorherige whackWebkitMatchesSelector den IE Fall enthalten:
function whackWebkitMatchesSelector() {
var oldMatches;
if (Element.prototype.msMatchesSelector) {
oldMatches = Element.prototype.msMatchesSelector;
Element.prototype.msMatchesSelector = function(selector) {
try { return oldMatches.call(this, selector); }
catch (err) { return false; }
};
} else if (Element.prototype.webkitMatchesSelector) {
oldMatches = Element.prototype.webkitMatchesSelector;
Element.prototype.webkitMatchesSelector = function(selector) {
try { return oldMatches.call(this, selector); }
catch (err) { return false; }
};
}
}
whackWebkitMatchesSelector();
Kurzes Update, ich rate Ihnen, sich zu informieren [Vorlon.js] (http://vorlonjs.com/) –
was AngularJS ist macht es dann, dass es bricht? : S – chinabuffet
Es scheint die [ng-Umhang], etc. Stile zu sein. –