版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

307 строки
10 KiB

  1. import IElement from '../element/IElement';
  2. import IHTMLElement from '../html-element/IHTMLElement';
  3. import IWindow from '../../window/IWindow';
  4. import TreeWalker from '../../tree-walker/TreeWalker';
  5. import Event from '../../event/Event';
  6. import DOMImplementation from '../../dom-implementation/DOMImplementation';
  7. import INodeFilter from '../../tree-walker/INodeFilter';
  8. import IAttr from '../attr/IAttr';
  9. import IDocumentType from '../document-type/IDocumentType';
  10. import IParentNode from '../parent-node/IParentNode';
  11. import INode from '../node/INode';
  12. import ICharacterData from '../character-data/ICharacterData';
  13. import IDocumentFragment from '../document-fragment/IDocumentFragment';
  14. import Selection from '../../selection/Selection';
  15. import IHTMLCollection from '../element/IHTMLCollection';
  16. import IHTMLScriptElement from '../html-script-element/IHTMLScriptElement';
  17. import CSSStyleSheet from '../../css/CSSStyleSheet';
  18. import Location from '../../location/Location';
  19. import DocumentReadyStateEnum from './DocumentReadyStateEnum';
  20. import INodeList from '../node/INodeList';
  21. import Range from '../../range/Range';
  22. import IProcessingInstruction from '../processing-instruction/IProcessingInstruction';
  23. import VisibilityStateEnum from './VisibilityStateEnum';
  24. /**
  25. * Document.
  26. */
  27. export default interface IDocument extends IParentNode {
  28. readonly defaultView: IWindow;
  29. readonly implementation: DOMImplementation;
  30. readonly documentElement: IHTMLElement;
  31. readonly doctype: IDocumentType;
  32. readonly body: IHTMLElement;
  33. readonly head: IHTMLElement;
  34. readonly scripts: IHTMLCollection<IHTMLScriptElement>;
  35. readonly activeElement: IHTMLElement;
  36. readonly styleSheets: CSSStyleSheet[];
  37. readonly scrollingElement: IHTMLElement;
  38. readonly location: Location;
  39. readonly readyState: DocumentReadyStateEnum;
  40. readonly charset: string;
  41. readonly characterSet: string;
  42. readonly URL: string;
  43. readonly documentURI: string;
  44. readonly visibilityState: VisibilityStateEnum;
  45. readonly hidden: boolean;
  46. cookie: string;
  47. title: string;
  48. onreadystatechange: (event: Event) => void;
  49. onpointerlockchange: (event: Event) => void;
  50. onpointerlockerror: (event: Event) => void;
  51. onbeforecopy: (event: Event) => void;
  52. onbeforecut: (event: Event) => void;
  53. onbeforepaste: (event: Event) => void;
  54. onfreeze: (event: Event) => void;
  55. onresume: (event: Event) => void;
  56. onsearch: (event: Event) => void;
  57. onvisibilitychange: (event: Event) => void;
  58. onfullscreenchange: (event: Event) => void;
  59. onfullscreenerror: (event: Event) => void;
  60. onwebkitfullscreenchange: (event: Event) => void;
  61. onwebkitfullscreenerror: (event: Event) => void;
  62. onbeforexrselect: (event: Event) => void;
  63. onabort: (event: Event) => void;
  64. onbeforeinput: (event: Event) => void;
  65. onblur: (event: Event) => void;
  66. oncancel: (event: Event) => void;
  67. oncanplay: (event: Event) => void;
  68. oncanplaythrough: (event: Event) => void;
  69. onchange: (event: Event) => void;
  70. onclick: (event: Event) => void;
  71. onclose: (event: Event) => void;
  72. oncontextlost: (event: Event) => void;
  73. oncontextmenu: (event: Event) => void;
  74. oncontextrestored: (event: Event) => void;
  75. oncuechange: (event: Event) => void;
  76. ondblclick: (event: Event) => void;
  77. ondrag: (event: Event) => void;
  78. ondragend: (event: Event) => void;
  79. ondragenter: (event: Event) => void;
  80. ondragleave: (event: Event) => void;
  81. ondragover: (event: Event) => void;
  82. ondragstart: (event: Event) => void;
  83. ondrop: (event: Event) => void;
  84. ondurationchange: (event: Event) => void;
  85. onemptied: (event: Event) => void;
  86. onended: (event: Event) => void;
  87. onerror: (event: Event) => void;
  88. onfocus: (event: Event) => void;
  89. onformdata: (event: Event) => void;
  90. oninput: (event: Event) => void;
  91. oninvalid: (event: Event) => void;
  92. onkeydown: (event: Event) => void;
  93. onkeypress: (event: Event) => void;
  94. onkeyup: (event: Event) => void;
  95. onload: (event: Event) => void;
  96. onloadeddata: (event: Event) => void;
  97. onloadedmetadata: (event: Event) => void;
  98. onloadstart: (event: Event) => void;
  99. onmousedown: (event: Event) => void;
  100. onmouseenter: (event: Event) => void;
  101. onmouseleave: (event: Event) => void;
  102. onmousemove: (event: Event) => void;
  103. onmouseout: (event: Event) => void;
  104. onmouseover: (event: Event) => void;
  105. onmouseup: (event: Event) => void;
  106. onmousewheel: (event: Event) => void;
  107. onpause: (event: Event) => void;
  108. onplay: (event: Event) => void;
  109. onplaying: (event: Event) => void;
  110. onprogress: (event: Event) => void;
  111. onratechange: (event: Event) => void;
  112. onreset: (event: Event) => void;
  113. onresize: (event: Event) => void;
  114. onscroll: (event: Event) => void;
  115. onsecuritypolicyviolation: (event: Event) => void;
  116. onseeked: (event: Event) => void;
  117. onseeking: (event: Event) => void;
  118. onselect: (event: Event) => void;
  119. onslotchange: (event: Event) => void;
  120. onstalled: (event: Event) => void;
  121. onsubmit: (event: Event) => void;
  122. onsuspend: (event: Event) => void;
  123. ontimeupdate: (event: Event) => void;
  124. ontoggle: (event: Event) => void;
  125. onvolumechange: (event: Event) => void;
  126. onwaiting: (event: Event) => void;
  127. onwebkitanimationend: (event: Event) => void;
  128. onwebkitanimationiteration: (event: Event) => void;
  129. onwebkitanimationstart: (event: Event) => void;
  130. onwebkittransitionend: (event: Event) => void;
  131. onwheel: (event: Event) => void;
  132. onauxclick: (event: Event) => void;
  133. ongotpointercapture: (event: Event) => void;
  134. onlostpointercapture: (event: Event) => void;
  135. onpointerdown: (event: Event) => void;
  136. onpointermove: (event: Event) => void;
  137. onpointerrawupdate: (event: Event) => void;
  138. onpointerup: (event: Event) => void;
  139. onpointercancel: (event: Event) => void;
  140. onpointerover: (event: Event) => void;
  141. onpointerout: (event: Event) => void;
  142. onpointerenter: (event: Event) => void;
  143. onpointerleave: (event: Event) => void;
  144. onselectstart: (event: Event) => void;
  145. onselectionchange: (event: Event) => void;
  146. onanimationend: (event: Event) => void;
  147. onanimationiteration: (event: Event) => void;
  148. onanimationstart: (event: Event) => void;
  149. ontransitionrun: (event: Event) => void;
  150. ontransitionstart: (event: Event) => void;
  151. ontransitionend: (event: Event) => void;
  152. ontransitioncancel: (event: Event) => void;
  153. oncopy: (event: Event) => void;
  154. oncut: (event: Event) => void;
  155. onpaste: (event: Event) => void;
  156. onbeforematch: (event: Event) => void;
  157. /**
  158. * Replaces the document HTML with new HTML.
  159. *
  160. * @param html HTML.
  161. */
  162. write(html: string): void;
  163. /**
  164. * Opens the document.
  165. *
  166. * @returns Document.
  167. */
  168. open(): IDocument;
  169. /**
  170. * Closes the document.
  171. */
  172. close(): void;
  173. /**
  174. * Creates an element.
  175. *
  176. * @param tagName Tag name.
  177. * @param [options] Options.
  178. * @returns Element.
  179. */
  180. createElement(tagName: string, options?: {
  181. is: string;
  182. }): IElement;
  183. /**
  184. * Creates an element with the specified namespace URI and qualified name.
  185. *
  186. * @param tagName Tag name.
  187. * @param [options] Options.
  188. * @returns Element.
  189. */
  190. createElementNS(namespaceURI: string, qualifiedName: string, options?: {
  191. is: string;
  192. }): IElement;
  193. /**
  194. * Creates a text node.
  195. *
  196. * @param data Text data.
  197. * @returns Text node.
  198. */
  199. createTextNode(data?: string): ICharacterData;
  200. /**
  201. * Creates a comment node.
  202. *
  203. * @param data Text data.
  204. * @returns Text node.
  205. */
  206. createComment(data?: string): ICharacterData;
  207. /**
  208. * Creates a document fragment.
  209. *
  210. * @returns Document fragment.
  211. */
  212. createDocumentFragment(): IDocumentFragment;
  213. /**
  214. * Creates a Tree Walker.
  215. *
  216. * @param root Root.
  217. * @param [whatToShow] What to show.
  218. * @param [filter] Filter.
  219. */
  220. createTreeWalker(root: INode, whatToShow: number, filter: INodeFilter): TreeWalker;
  221. /**
  222. * Creates an event.
  223. *
  224. * @deprecated
  225. * @param _type Type.
  226. * @returns Event.
  227. */
  228. createEvent(_type: string): Event;
  229. /**
  230. * Creates an Attr node.
  231. *
  232. * @param name Name.
  233. * @returns Attribute.
  234. */
  235. createAttribute(name: string): IAttr;
  236. /**
  237. * Creates a namespaced Attr node.
  238. *
  239. * @param namespaceURI Namespace URI.
  240. * @param qualifiedName Qualified name.
  241. * @returns Element.
  242. */
  243. createAttributeNS(namespaceURI: string, qualifiedName: string): IAttr;
  244. /**
  245. * Imports a node.
  246. *
  247. * @param node Node to import.
  248. * @param Imported Node.
  249. */
  250. importNode(node: INode): INode;
  251. /**
  252. * Creates a range.
  253. *
  254. * @returns Range.
  255. */
  256. createRange(): Range;
  257. /**
  258. * Returns an element by ID.
  259. *
  260. * @param id ID.
  261. * @returns Matching element.
  262. */
  263. getElementById(id: string): IElement;
  264. /**
  265. * Returns an elements by name.
  266. *
  267. * @param name Name.
  268. * @returns Matching element.
  269. */
  270. getElementsByName(name: string): INodeList<IElement>;
  271. /**
  272. * Clones a node.
  273. *
  274. * @override
  275. * @param [deep=false] "true" to clone deep.
  276. * @returns Cloned node.
  277. */
  278. cloneNode(deep: boolean): IDocument;
  279. /**
  280. * Adopts a node.
  281. *
  282. * @param node Node to adopt.
  283. * @returns Adopted node.
  284. */
  285. adoptNode(node: INode): INode;
  286. /**
  287. * Returns selection.
  288. *
  289. * @returns Selection.
  290. */
  291. getSelection(): Selection;
  292. /**
  293. * Returns a boolean value indicating whether the document or any element inside the document has focus.
  294. *
  295. * @returns "true" if the document has focus.
  296. */
  297. hasFocus(): boolean;
  298. /**
  299. * Creates a Processing Instruction node.
  300. *
  301. * @returns IProcessingInstruction.
  302. * @param target
  303. * @param data
  304. */
  305. createProcessingInstruction(target: string, data: string): IProcessingInstruction;
  306. }