我想要
的等效代码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 方法不可用。
提前致谢。
最佳答案
您必须使用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);
}
}
}
检查此链接以供引用:
关于javascript - 如何在 IE 11 中获取 Range 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011762/