我正在努力重现一些在Internet Explorer 10及更早版本中运行但在版本11中不能运行的代码:
JSFiddle演示:http://jsfiddle.net/tala/jqs5y0eh/
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);
}
});
当IE控制台切换到模拟版本10时,此代码可以正常工作。
我知道不再支持selection,所以我尝试用window.getSelection()替换它。使用旧的选择对象,您可以调用createRange()来获取TextRange对象,该对象可以访问 expand 等方法。
但是,使用getSelection没有createRange()方法。我试过getRangeAt()
if (sel = window.getSelection()) {
range = sel.getRangeAt(0);
...但在这种情况下,返回的范围对象不是TextRange对象,也不实现expand方法。
有关如何更改此代码以在IE 11中工作的任何想法?