我想在模块中添加一个方法(想想网络组件),检测是否已将高度设置为其根元素,如果没有,则根据其他因素计算其高度。
这个模块有一些绝对的定位和其他的幻想'事情如此正常的流动是不可能的。
我在考虑循环遍历document.styleSheets
并检查每个selectorText
的{{1}}中根元素的ID或类,然后解析cssRule
或寻找一个非空的密钥' height'在cssText
对象内。
有没有更好(或标准)的方法呢?
PS - 我可能在制定问题时解决了这个问题,所以如果你遇到同样的问题 - 这就是你去!
答案 0 :(得分:0)
这是一个相当粗略的实现:
isHeightSet: function () {
var id = this.elements.root.id,
_isHeightSet = false; // the crude part ;-)
// go through stylesheets
_.each(document.styleSheets, function(styleSheet) {
// go through rules
_.each(styleSheet.cssRules, function(cssRule) {
// if selectorText contains our id
if (cssRule.selectorText && cssRule.selectorText.indexOf(id) !== -1) {
// check if the height is set
if (cssRule.style.height &&
(cssRule.style.height !== 'auto' &&
cssRule.style.height !== 'inherit')) {
// keep on hacking!
_isHeightSet = true;
}
}
});
});
return _isHeightSet;
}
可能更强大,但似乎工作正常。