我目前在IE 11中遇到了文本选择问题(尽管它也发生在以前的IE中)。我的目标是让文本选择工作在它返回给我的getClientRects。我所拥有的是一个简单的设置。我有一个容器div,在div中我放置了两个跨度:
<div onmouseup="mouseup()" id="container">
<div class="span1">Span 1</div>
<div class="span2">Span 2</div>
</div>
两个跨度绝对位于顶部/左侧和底部/右侧角落。容器的高度为100px;
在鼠标向上运行此功能:
function mouseup(){
var selectObj = ((window.getSelection)?window.getSelection():document.getSelection());
alert(selectObj.getRangeAt(0).getClientRects().length);
}
在Chrome上如果你试图从span 1到span 2中选择文本,它将提示3的长度,这就是我想要的,因为它让我知道文本选择的边界框的位置。在Internet Explorer上虽然它总是返回0.如果我只在一个范围内选择文本它将起作用,但是一旦你去多个它失败。
以下是所有设置的jsFiddle:http://jsfiddle.net/v6sa71hs/
答案 0 :(得分:1)
看起来你不能这样做。如果你改为告诉所有东西浮动,然后用margin-top / left定位它就可以了。这是两个跨度的css
span{
float: left;
margin-bottom: -100%;
margin-right: -100%;
}