我们正在从javascript迁移到typescript,而且文档类中的一些函数似乎不再存在。我找不到任何相同的东西。
1) createRange()
var textRange = document.getSelection().createRange();
2)createTextRange
var preCaretTextRange = document.body.createTextRange();
3)focus()
var el : Node= document.getElementById(divId).childNodes[0];
el.focus();
答案 0 :(得分:2)
(1)Selection对象没有createRange
方法(也可以在lib.d.ts definition中看到)。
相反,您应该使用document.createRange:
var textRange = document.createRange();
(2)createTextRange
是IE唯一的东西(CreateTextRange is not working in Chrome),它不是标准。
这有一个问题:'createTextRange' seems to be missing from 'lib.dom.d.ts' and other including libs说:
这是一个休息,因为这是一个仅限IE的API。用户可以增加 必要时接口
所以你可以这样做:
interface TextRange {
...
}
interface HtmlElement {
createTextRange(): TextRange;
}
(3)focus()
部分运行良好,编译器没有问题。
Node对象没有focus()
方法,因此您需要强制转换它:
var el = document.getElementById(divId).childNodes[0] as HTMLElement;
el.focus(); // works now