chrome 支持 document.selection 吗?

IT技术 javascript google-chrome
2021-03-07 20:21:03

我是 javascript 新手,试图执行:

document.selection.createRange();

document.selection总是返回 undefined

我正在使用最新版本的 chrome。

我究竟做错了什么?

谢谢!

4个回答

使用window.getSelection(),它是最具跨浏览器兼容性的(所有主要浏览器的当前版本都支持它)并且是标准的. Chrome 当然像其他浏览器一样完全支持它。

document.selection 应该只用于 IE < 9。

功能 markSelection ( txtObj ) { if ( txtObj.createTextRange ) { txtObj.caretPos = document.selection.createRange().duplicate(); isSelected = true; 如何将此更改为文档 .getselection()
2021-04-21 20:21:03
IE9 不喜欢它:SCRIPT438:对象不支持属性或方法“getSelection”
2021-05-07 20:21:03
@Misi:在这种情况下,您的 IE 9 必须处于其中一种兼容模式。在标准模式下,它绝对支持window.getSelection(). msdn.microsoft.com/en-us/library/ie/...
2021-05-10 20:21:03

尝试document.getSelection()window.getSelection()

这是我在 chrome 中测试的一个快速示例

http://jsfiddle.net/hgDwx/

@adi 我添加了一个在 chrome 中测试过的例子
2021-04-20 20:21:03
我假设 selection 只是使用 document.getSelection() 检索的对象的类,如下所示: var s = document.getSelection(); s.“以下链接中列出的任何属性或方法”; developer.mozilla.org/en-US/docs/Web/API/Selection
2021-04-27 20:21:03
我试过同时使用 window.getSelection 和 Document.getSelection 但函数 getRangeAt(index) 也不起作用。我已经完成了: var selObj = document.getSelection(); var selRange = selObj.getRangeAt(0); 警报(选择范围);你说什么?谢谢
2021-05-09 20:21:03
我得到的 rangeCount 值始终为零
2021-05-16 20:21:03

使用window.getSelection()来代替。

https://developer.mozilla.org/en/DOM/window.getSelection

浏览器支持selection基于 IE11 和 Chrome 87.04280.141对象

成员 IE 铬合金
document.selection 是的
window.selection
document.getSelection() 是的
window.getSelection() 是的

这是简单的部分。当您尝试使用任何方法时就会出现问题,fegetRange()存在于document.selection(IE 兼容),但不存在于document.getSelection(),因此对于 Chrome,您需要一个解决方法。

mm... IE 似乎同时支持windowdocumentgetSelection方法-您确定浏览器支持表吗?
2021-04-17 20:21:03