在javascript中有两个名为selection和getSelection的对象。现在“选择”有很多属性和方法。例如方法toString,Modify等。
我遇到的问题是我应该使用哪两个版本,对象选择还是getSelection?
caniuse.com中没有信息
答案 0 :(得分:2)
试试这个--------------------
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<script>
function SelectText() {
var input = document.getElementById("mytextbox");
input.focus();
input.setSelectionRange(2, 5);
var selObj = Window.toString();
//window.getselection returs the object of current selection
alert(selObj);
}
</script>
</head>
<body>
<p><input type="text" id="mytextbox" size="20" value="getselection" /></p>
<p><button onclick="SelectText()">Select text</button></p>
</body>
</html>
答案 1 :(得分:1)
这些不是一回事:getSelection
将页面上的当前选择作为Selection
的实例返回。由于getSelection
返回的对象是Selection
的实例,因此它将继承其所有方法和属性(包括toString,modify等)。因此,要回答您的问题,您必须getSelection
来获取,设置和修改页面上的选择。
一些文档here on MDN
答案 2 :(得分:0)
Try this .. you may get an idea about version support and getselection
<head>
<script type="text/javascript">
function GetSelectedText() {
var selText = "";
if (window.getSelection) {
// Supports all browsers, except IE before version 9
if (document.activeElement &&
(document.activeElement.tagName.toLowerCase() == "textarea" ||
document.activeElement.tagName.toLowerCase() == "input")) {
var text = document.activeElement.value;
selText = text.substring(document.activeElement.selectionStart,
document.activeElement.selectionEnd);
}
else {
var selRange = window.getSelection();
selText = selRange.toString();
}
}
else {
if (document.selection.createRange) {
// for Internet Explorer
var range = document.selection.createRange();
selText = range.text;
}
}
if (selText !== "") {
alert(selText);
}
}
</script>
</head>
<body onmouseup="GetSelectedText ()">
Some text for selection.
<br /><br />
<textarea>Some text in a textarea element.</textarea>
<input type="text" value="Some text in an input field." size="40" />
<br /><br />
Select some content on this page!
</body>