我正在尝试使用 Weinre 调试 AngularJS 应用程序,但样式检查不起作用。我可以使用 Weinre 来选择页面上的元素,但它从不显示来自 CSS 选择器的相关样式信息。我已将范围缩小到在分页符 Weinre 样式检查中仅包含 AngularJS(我使用的是 1.2.5 版)。我在网上找到了一些关于 Weinre 不能与 AngularJS 一起工作的参考资料(https://issues.apache.org/jira/browse/CB-2651),但 JIRA 说它已经解决了。有任何想法吗?
问问题
1133 次
3 回答
14
包括以下函数,并在页面的早期运行它:
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()
正如 https://issues.apache.org/jira/browse/CB-6161中所建议的, 我现在可以检查大多数(可能不是全部)样式。
于 2014-09-01T03:41:35.887 回答
1
他们通过捕捉异常并继续“修复”它。显然这个问题是由(webkit 认为的)无效的 CSS 选择器引起的。
于 2013-12-20T16:50:48.853 回答
1
我知道这个问题很老,但我在 Internet Explorer 11 下调试时遇到了同样的问题。我更新了以前的whackWebkitMatchesSelector以包含 IE 案例:
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();
于 2015-11-26T18:38:46.163 回答