Javascript 如何从IE11中的用户选择中获取TextRange对象?
我正在努力复制一些在Internet Explorer 10及更早版本中可用的代码,但在版本11中不可用: JSFIDLE演示: 当IE控制台切换到模拟版本10时,此代码工作正常 我知道它不再受支持,所以我尝试用window.getSelection()替换它。对于旧的选择对象,您可以调用createRange()来获取TextRange对象,该对象提供了对expand等方法的访问 但是,使用getSelection时,没有createRange()方法。我试过getRangeAt() 。。。但在本例中,返回的range对象不是TextRange对象,并且不实现expand方法Javascript 如何从IE11中的用户选择中获取TextRange对象?,javascript,internet-explorer,Javascript,Internet Explorer,我正在努力复制一些在Internet Explorer 10及更早版本中可用的代码,但在版本11中不可用: JSFIDLE演示: 当IE控制台切换到模拟版本10时,此代码工作正常 我知道它不再受支持,所以我尝试用window.getSelection()替换它。对于旧的选择对象,您可以调用createRange()来获取TextRange对象,该对象提供了对expand等方法的访问 但是,使用getSelection时,没有createRange()方法。我试过getRangeAt() 。。。但
关于如何修改此代码以在IE11中工作,您有什么想法吗?在IE11中,您需要使用标准属性和方法:并且,旧API已经过时。谢谢@Teemu。我尝试过使用标准属性/方法,比如你在MDN上引用的那些属性/方法——举个例子:这种方法在FF/Chrome中有效;然而,这些方法在IE11中不起作用
var button = document.getElementById('boldButton');
button.addEventListener("click", function() {
document.getElementById('text').focus();
if (sel = document.selection) {
range = sel.createRange();
if (!range.text) {
range.expand('word');
}
document.execCommand('bold', false, null);
}
});
if (sel = window.getSelection()) {
range = sel.getRangeAt(0);