为了完整性,这里是两个答案更完整的版本,包装成一个jQuery插件。 该插件支持所有主流浏览器。
(它在coffescript,对于JS代码,头js2coffee)
$.fn.selectText =() ->
@each ->
text = this
# FF, Chrome, IE9+, and hopefully Opera
if document.createRange? and window.getSelection?
selection = window.getSelection()
range = document.createRange()
range.selectNodeContents text
selection.removeAllRanges()
selection.addRange range
# <= IE8
else if document.body.createTextRange?
range = document.body.createTextRange()
range.moveToElementText text
range.select()
# Safari
else if window.getSelection?
selection = window.getSelection()
selection.setBaseAndExtent text, 0, text, 1
只是重新再更新。它可能接近需要 – whitneyit 2013-02-26 13:20:27
嗯...非常接近,有一个小小的问题: 旧版本的IE有TextRange,这里没有说明。 另外,在其他浏览器中是否还有更多的Range对象变体(比如说Opera) – 2013-02-26 13:24:39
您可以继续添加该测试。这将是漫长的,但它应该做到这一点。对于歌剧,你可以只测试window.Opera – whitneyit 2013-02-26 13:28:44