我正在尝试在Javascript中创建一个简单的选取框,并且需要在以下内容中获取 innerDIV 的完整内容宽度:
<div id="container" style="width: 100%; overflow: hidden;">
<div id="innerDiv" style="direction: rtl; white-space: nowrap; overflow: visible; position: relative;">
very long ... text
</div>
</div>
我尝试了 scrollWidth 。它适用于Chrome ,但不适用于Firefox (其中它提供了clientWidth的值)。
以下是现场演示:http://jsfiddle.net/5fPGy/3/(使用Chrome和Firefox试用)
有谁知道为什么?以及如何获得全宽?
提前致谢。
答案 0 :(得分:4)
我有同样的问题,我找到了你的问题的答案。这是Firefox中的一个错误:https://bugzilla.mozilla.org/show_bug.cgi?id=833542。
Firefox为scrollWidth返回clientWidth值。它应该在Firefox 21中修复。
目前,我使用了一种解决方法在Firefox上获取正确的scrollWidth:将溢出设置为隐藏,获取正确的scrollWidth并将溢出恢复为可见。请参阅:http://jsfiddle.net/5fPGy/5/
var scrollWidth = $(ele).css("overflow", "hidden")[0].scrollWidth;
alert('clientWidt h = ' + ele.clientWidth + ', scrollWidth = ' + scrollWidth );
$(ele).css("overflow", "visible");
祝你好运,
安德烈
答案 1 :(得分:0)
这似乎可以解决问题:
docWidth = Math.max(
Math.max(frameDoc.body.scrollWidth, frameDoc.documentElement.scrollWidth),
Math.max(frameDoc.body.offsetWidth, frameDoc.documentElement.offsetWidth)
);