我正在使用jquery UI对话框(http://jqueryui.com/demos/dialog/)来显示一大块文本。我想在此对话框中选择一些文本并对其进行操作。现在我的当前代码适用于Chrome和Firefox,但不适用于Safari。 (尚未在IE上测试)
我得到了选择并按如下方式显示:
selection = window.getSelection();
alert(selection.toString().length);
Safari上的警报返回零。我对javascript / jquery比较新,所以任何指针都会有所帮助!谢谢!
答案:对于任何人看到这个...当我在safari对话框中使用事件“mousedown”而不是“click”时,它开始工作。谢谢大家!
答案 0 :(得分:0)
看起来Safari的工作方式略有不同。 getSelection()没有返回普通的字符串对象,因此并非所有字符串方法都对它返回的对象起作用。此链接有http://joemaller.com/503/getselection-workaround/
的解决方法看起来这是一个非常古老的“错误”,所以可能会有更好的建议,而不是在那里做什么。
答案 1 :(得分:0)
如果你正在做任何选择,我会强烈建议你看看Tim Down的 rangy 库。这家伙是Range / Selection对象大师。他的库完成了实现跨浏览器范围选择库的所有细节。文档很好,他正积极参与该项目(几天前发布了v 1.1)。
(编辑:我不隶属于该项目。我只是使用它并喜欢它!)