jquery ui对话框上的window.getSelection不会在Safari中返回选择

时间:2011-05-03 04:08:57

标签: javascript jquery jquery-ui getselection

我正在使用jquery UI对话框(http://jqueryui.com/demos/dialog/)来显示一大块文本。我想在此对话框中选择一些文本并对其进行操作。现在我的当前代码适用于Chrome和Firefox,但不适用于Safari。 (尚未在IE上测试)

我得到了选择并按如下方式显示:

selection = window.getSelection(); 
alert(selection.toString().length);

Safari上的警报返回零。我对javascript / jquery比较新,所以任何指针都会有所帮助!谢谢!

答案:对于任何人看到这个...当我在safari对话框中使用事件“mousedown”而不是“click”时,它开始工作。谢谢大家!

2 个答案:

答案 0 :(得分:0)

看起来Safari的工作方式略有不同。 getSelection()没有返回普通的字符串对象,因此并非所有字符串方法都对它返回的对象起作用。此链接有http://joemaller.com/503/getselection-workaround/

的解决方法

看起来这是一个非常古老的“错误”,所以可能会有更好的建议,而不是在那里做什么。

答案 1 :(得分:0)

如果你正在做任何选择,我会强烈建议你看看Tim Down的 rangy 库。这家伙是Range / Selection对象大师。他的库完成了实现跨浏览器范围选择库的所有细节。文档很好,他正积极参与该项目(几天前发布了v 1.1)。

(编辑:我不隶属于该项目。我只是使用它并喜欢它!)