我想要
的等效代码var nbLineStart=textarea.value.substr(0, textarea.selectionStart).split("\n").length - 1;
var nbLineEnd=textarea.value.substr(0, textarea.selectionEnd).split("\n").length - 1;
var range = document.selection.createRange();
try{
range.moveToElementText( textarea );
}catch(e){}
range.setEndPoint( 'EndToStart', range );
range.moveStart('character', textarea.selectionStart - nbLineStart);
range.moveEnd('character', textarea.selectionEnd - nbLineEnd - (textarea.selectionStart - nbLineStart) );
range.select();
将成功在IE 11平台上运行。
如果我在IE 11中使用document.getSelection()方法,那么setEndPoint,moveStart和select方法都不可用。
先谢谢。
答案 0 :(得分:2)
您必须使用window.getSelection()
方法获取所选内容
function TestSelection() {
if (window.getSelection) { // all browsers, except IE before version 9
var selectionRange = window.getSelection();
alert("The text content of the selection:\n" + selectionRange.toString());
} else {
if (document.selection.type === "None") {
alert("No content is selected, or the selected content is not available!");
} else {
var textRange = document.selection.createRange();
alert("The text content of the selection:\n" + textRange.text);
}
}
}
请查看此链接以供参考:
答案 1 :(得分:0)
您必须使用window.getSelection
方法。
来源:http://msdn.microsoft.com/en-us/library/ie/ff975169(v=vs.85).aspx https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection
var range;
if (document.selection){
// IE before version 9
range = document.selection.createRange();
...
} else {
// IE after version 9
range = window.getSelection();
...
}
答案 2 :(得分:0)
您可以使用window.getSelection()
函数。
可以找到一个很好的参考here