在WebKit中,anchorOffset是一个int而不是long(chrome和safari)

时间:2013-11-22 22:42:45

标签: javascript google-chrome safari webkit

我的代码如下:

var selObj = (window.getSelection && window.getSelection());
if ( selObj !== null && selObj.anchorOffset) {
  var off = selObj.anchorOffset;

据我所知,anchorOffset应该很长 - 在Firefox和IE中确实很长。但是在Webkit中,如果我有超过65K的大量选择,它会截断 - 即我得到一个int。

这是一个错误吗?还有什么我可以用作替代方法吗?

感谢。


我正在添加一个非常简单的页面来显示问题:

<body>
<label ondblclick="var selObj = (window.getSelection && window.getSelection()); alert(selObj.anchorOffset);">
really really long text here
...
...
..
at 65K it wrpas around..
</label> 
</body>

如果用大量文本(超过65K字符)替换....并在chrome或safari中打开页面并双击超过65K标记,您将看到它将其视为溢出。

好像有多个选择 - 但我不知道如何“缠绕”多少次

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

JavaScript只有一种数字类型(符合IEEE-754标准的浮点数),因此您看到的差异可能是window.getSelection()中的实现差异。

可能的解决方法取决于具体的用例。