如果你是 javascript高手,请来这里吧,扣扣群 170798851,我们一起进步。
/** @type {number} @const */ Blob.prototype.size = 0; /** @type {string} @const */ Blob.prototype.type = null; /** @param {number} [start] @param {number} [end] @param {string} [contentType] @return {Blob} */ Blob.prototype.slice = function(start,end,contentType) {}; Blob = {}; /** @type {number} @const */ FileList.prototype.length = 0; /** @param {number} [item] @return {File} */ FileList.prototype.item = function(item) {}; FileList = {}; /** @type {FileList} @const */ HTMLInputElement.prototype.files = 0; HTMLInputElement = {}; /** @type {string} @const */ File.prototype.name = null; /** @type {Date} @const */ File.prototype.lastModifiedDate = 0; File.prototype = new Blob(); File = {}; /** @static @type {number} @const */ FileReader.EMPTY = 0; /** @static @type {number} @const */ FileReader.LOADING = 1; /** @static @type {number} @const */ FileReader.DONE = 2; /** @type {number} @const */ FileReader.prototype.readyState = 0; /** @type {Object} @const */ FileReader.prototype.result = 0; /** @type {Error} @const */ FileReader.prototype.error = 0; /** @type {Function} */ Object.defineProperty(FileReader, "onloadstart", { set: function(value) {} }); /** @type {Function} */ Object.defineProperty(FileReader, "onprogress", { set: function(value) {} }); /** @type {Function} */ Object.defineProperty(FileReader, "onload", { set: function(value) {} }); /** @type {Function} */ Object.defineProperty(FileReader, "onabort", { set: function(value) {} }); /** @type {Function} */ Object.defineProperty(FileReader, "onerror", { set: function(value) {} }); /** @type {Function} */ Object.defineProperty(FileReader, "onloadend", { set: function(value) {} }); /** @param {Blob} blob @return {void} */ FileReader.prototype.readAsArrayBuffer = function(blob) {}; /** @param {Blob} blob @return {void} */ FileReader.prototype.readAsBinaryString = function(blob) {}; /** @param {Blob} blob @param {string} [encoding] @return {void} */ FileReader.prototype.readAsText = function(blob,encoding) {}; /** @param {Blob} blob @return {void} */ FileReader.prototype.readAsDataURL = function(blob) {}; /** @return {void} */ FileReader.prototype.abort = function() {}; FileReader.prototype = new EventTarget(); FileReader = {}; /** @type {DOMStringMap} @const */ Node.prototype.dataset = 0; /** @type {DOMTokenList} @const */ Node.prototype.classList = 0; Node = {}; DOMStringMap = {}; /** @type {Number} @const */ DOMTokenList.prototype.length = 0; /** @param {string} className @return {boolean} */ DOMTokenList.prototype.contains = function(className) {}; /** @param {string} className */ DOMTokenList.prototype.add = function(className) {}; /** @param {string} className */ DOMTokenList.prototype.remove = function(className) {}; /** @param {string} className */ DOMTokenList.prototype.toggle = function(className) {}; DOMTokenList = {}; /** @param {Database} database @return {void} */ DatabaseCallback.prototype.handleEvent = function(database) {}; DatabaseCallback = {}; /** @static @const */ Notification.permission = 0; /** @param {Function} [callback] @static @return {void} */ Notification.requestPermission = function(callback) {}; /** @type {Function} */ Notification.prototype.ondisplay = 0; /** @type {Function} */ Notification.prototype.onerror = 0; /** @type {Function} */ Notification.prototype.onclose = 0; /** @return {void} */ Notification.prototype.show = function() {}; /** @return {void} */ Notification.prototype.cancel = function() {}; Notification.prototype = new EventTarget(); Notification = {}; HtmlElement = {}; /** @static @type {Number} @const */ HTMLMediaElement.HAVE_NOTHING = 0; /** @static @type {Number} @const */ HTMLMediaElement.HAVE_METADATA = 1; /** @static @type {Number} @const */ HTMLMediaElement.HAVE_CURRENT_DATA = 2; /** @static @type {Number} @const */ HTMLMediaElement.HAVE_FUTURE_DATA = 3; /** @static @type {Number} @const */ HTMLMediaElement.HAVE_ENOUGH_DATA = 4; /** @static @type {Number} @const */ HTMLMediaElement.NETWORK_EMPTY = 0; /** @static @type {Number} @const */ HTMLMediaElement.NETWORK_IDLE = 1; /** @static @type {Number} @const */ HTMLMediaElement.NETWORK_LOADING = 2; /** @static @type {Number} @const */ HTMLMediaElement.NETWORK_NO_SOURCE = 3; /** @type {MediaError} @const */ HTMLMediaElement.prototype.error = 0; /** @type {string} */ HTMLMediaElement.prototype.src = null; /** @type {string} @const */ HTMLMediaElement.prototype.currentSrc = null; /** @type {Number} @const */ HTMLMediaElement.prototype.networkState = 0; /** @type {string} */ HTMLMediaElement.prototype.preload = null; /** @type {TimeRanges} @const */ HTMLMediaElement.prototype.buffered = 0; /** @type {Number} @const */ HTMLMediaElement.prototype.readyState = 0; /** @type {boolean} @const */ HTMLMediaElement.prototype.seeking = 0; /** @type {Number} */ HTMLMediaElement.prototype.currentTime = 0; /** @type {Number} @const */ HTMLMediaElement.prototype.startTime = 0; /** @type {Number} @const */ HTMLMediaElement.prototype.duration = 0; /** @type {boolean} @const */ HTMLMediaElement.prototype.paused = 0; /** @type {Number} */ HTMLMediaElement.prototype.defaultPlaybackRate = 0; /** @type {Number} */ HTMLMediaElement.prototype.playbackRate = 0; /** @type {TimeRanges} @const */ HTMLMediaElement.prototype.played = 0; /** @type {TimeRanges} @const */ HTMLMediaElement.prototype.seekable = 0; /** @type {boolean} @const */ HTMLMediaElement.prototype.ended = 0; /** @type {boolean} */ HTMLMediaElement.prototype.autoplay = 0; /** @type {boolean} */ HTMLMediaElement.prototype.loop = 0; /** @type {boolean} */ HTMLMediaElement.prototype.controls = 0; /** @type {Number} */ HTMLMediaElement.prototype.volume = 0; /** @type {boolean} */ HTMLMediaElement.prototype.muted = 0; /** @type {Array} @const */ HTMLMediaElement.prototype.tracks = 0; /** @return {void} */ HTMLMediaElement.prototype.load = function() {}; /** @param {string} type @return {string} */ HTMLMediaElement.prototype.canPlayType = function(type) {}; /** @return {void} */ HTMLMediaElement.prototype.play = function() {}; /** @return {void} */ HTMLMediaElement.prototype.pause = function() {}; /** @param {string} label @param {string} kind @param {string} language @return {MutableTimedTrack} */ HTMLMediaElement.prototype.addTrack = function(label,kind,language) {}; HTMLMediaElement.prototype = new HTMLElement(); HTMLMediaElement = {}; /** @static @type {number} @const */ MediaError.MEDIA_ERR_ABORTED = 1; /** @static @type {number} @const */ MediaError.MEDIA_ERR_NETWORK = 2; /** @static @type {number} @const */ MediaError.MEDIA_ERR_DECODE = 3; /** @static @type {number} @const */ MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4; /** @type {number} @const */ MediaError.prototype.code = 0; MediaError = {}; /** @type {number} @const */ TimeRanges.prototype.length = 0; /** @param {number} index @return {number} */ TimeRanges.prototype.start = function(index) {}; /** @param {number} index @return {number} */ TimeRanges.prototype.end = function(index) {}; TimeRanges = {}; /** @static @type {number} @const */ TimedTrack.NONE = 0; /** @static @type {number} @const */ TimedTrack.LOADING = 1; /** @static @type {number} @const */ TimedTrack.LOADED = 2; /** @static @type {number} @const */ TimedTrack.ERROR = 3; /** @static @type {number} @const */ TimedTrack.OFF = 0; /** @static @type {number} @const */ TimedTrack.HIDDEN = 1; /** @static @type {number} @const */ TimedTrack.SHOWING = 2; /** @type {string} @const */ TimedTrack.prototype.kind = null; /** @type {string} @const */ TimedTrack.prototype.label = null; /** @type {string} @const */ TimedTrack.prototype.language = null; /** @type {number} @const */ TimedTrack.prototype.readyState = 0; /** @type {Function} @const */ TimedTrack.prototype.onload = 0; /** @type {Function} @const */ TimedTrack.prototype.onerror = 0; /** @type {number} */ TimedTrack.prototype.mode = 0; /** @type {TimedTrackCueList} @const */ TimedTrack.prototype.cues = 0; /** @type {TimedTrackCueList} @const */ TimedTrack.prototype.activeCues = 0; /** @type {Function} @const */ TimedTrack.prototype.onentercue = 0; /** @type {Function} @const */ TimedTrack.prototype.onexitcue = 0; TimedTrack = {}; /** @param {TimedTrackCue} cue @return {void} */ MutableTimedTrack.prototype.addCue = function(cue) {}; /** @param {TimedTrackCue} cue @return {void} */ MutableTimedTrack.prototype.removeCue = function(cue) {}; MutableTimedTrack.prototype = new TimedTrack(); MutableTimedTrack = {}; /** @type {TimedTrack} @const */ TimedTrackCue.prototype.track = 0; /** @type {string} @const */ TimedTrackCue.prototype.id = null; /** @type {Number} @const */ TimedTrackCue.prototype.startTime = 0; /** @type {Number} @const */ TimedTrackCue.prototype.endTime = 0; /** @type {boolean} @const */ TimedTrackCue.prototype.pauseOnExit = 0; /** @type {string} @const */ TimedTrackCue.prototype.direction = null; /** @type {boolean} @const */ TimedTrackCue.prototype.snapToLines = 0; /** @type {Number} @const */ TimedTrackCue.prototype.linePosition = 0; /** @type {Number} @const */ TimedTrackCue.prototype.textPosition = 0; /** @type {Number} @const */ TimedTrackCue.prototype.size = 0; /** @type {string} @const */ TimedTrackCue.prototype.alignment = null; /** @type {string} @const */ TimedTrackCue.prototype.voice = null; /** @return {string} */ TimedTrackCue.prototype.getCueAsSource = function() {}; /** @return {DocumentFragment} */ TimedTrackCue.prototype.getCueAsHTML = function() {}; /** @param {string} id @param {Number} startTime @param {Number} endTime @param {string} settings @param {string} text @param {boolean} [pauseOnExit] @return {TimedTrackCue} */ TimedTrackCue.prototype.TimedTrackCue = function(id,startTime,endTime,settings,text,pauseOnExit) {}; TimedTrackCue = {}; /** @type {Number} @const */ TimedTrackCueList.prototype.length = 0; /** @param {string} id @return {TimedTrackCue} */ TimedTrackCueList.prototype.getCueById = function(id) {}; TimedTrackCueList = {}; /** @type {Number} */ HTMLVideoElement.prototype.width = 0; /** @type {Number} */ HTMLVideoElement.prototype.height = 0; /** @type {Number} @const */ HTMLVideoElement.prototype.videoWidth = 0; /** @type {Number} @const */ HTMLVideoElement.prototype.videoHeight = 0; /** @type {string} */ HTMLVideoElement.prototype.poster = null; HTMLVideoElement.prototype = new HTMLMediaElement(); HTMLVideoElement = {}; /** @type {string} @const */ Database.prototype.version = null; /** @param {SQLTransactionCallback|SQLTransactionSyncCallback|Function} callback @param {SQLTransactionErrorCallback|Function} [errorCallback] @param {SQLVoidCallback|Function} [successCallback] */ Database.prototype.transaction = function(callback,errorCallback,successCallback) {}; /** @param {SQLTransactionCallback|SQLTransactionSyncCallback|Function} callback @param {SQLTransactionErrorCallback|Function} [errorCallback] @param {SQLVoidCallback|Function} [successCallback] */ Database.prototype.readTransaction = function(callback,errorCallback,successCallback) {}; /** @param {string} oldVersion @param {string} newVersion @param {SQLTransactionCallback|Function} [callback] @param {SQLTransactionErrorCallback|Function} [errorCallback] @param {SQLVoidCallback|Function} [successCallback] */ Database.prototype.changeVersion = function(oldVersion,newVersion,callback,errorCallback,successCallback) {}; Database = {}; /** @return {void} */ SQLVoidCallback.prototype.handleEvent = function() {}; SQLVoidCallback = {}; /** @param {SQLTransaction} [transaction] @return {void} */ SQLTransactionCallback.prototype.handleEvent = function(transaction) {}; SQLTransactionCallback = {}; /** @param {SQLError} [error] @return {void} */ SQLTransactionErrorCallback.prototype.handleEvent = function(error) {}; SQLTransactionErrorCallback = {}; /** @param {string} sqlStatement @param {Object[]} [arguments] @param {SQLStatementCallback} [callback] @param {SQLStatementErrorCallback} [errorCallback] @return {void} */ SQLTransaction.prototype.executeSql = function(sqlStatement,arguments,callback,errorCallback) {}; SQLTransaction = {}; /** @param {SQLTransaction} [transaction] @param {SQLResultSet} [resultSet] @return {void} */ SQLStatementCallback.prototype.handleEvent = function(transaction,resultSet) {}; SQLStatementCallback = {}; /** @param {SQLTransaction} [transaction] @param {SQLError} [error] @return {boolean} */ SQLStatementErrorCallback.prototype.handleEvent = function(transaction,error) {}; SQLStatementErrorCallback = {}; /** @param {SQLTransactionSync} [transaction] @return {void} */ SQLTransactionSyncCallback.prototype.handleEvent = function(transaction) {}; SQLTransactionSyncCallback = {}; /** @param {string} sqlStatement @param {Object[]} [arguments] @return {SQLResultSet} */ SQLTransactionSync.prototype.executeSql = function(sqlStatement,arguments) {}; SQLTransactionSync = {}; /** @type {Number} @const */ SQLResultSet.prototype.insertId = 0; /** @type {Number} @const */ SQLResultSet.prototype.rowsAffected = 0; /** @type {SQLResultSetRowList} @const */ SQLResultSet.prototype.rows = 0; SQLResultSet = {}; /** @type {number} @const */ SQLResultSetRowList.prototype.length = 0; /** @param {number} index */ SQLResultSetRowList.prototype.item = function(index) {}; SQLResultSetRowList = {}; /** @static @type {number} @const */ SQLError.UNKNOWN_ERR = 0; /** @static @type {number} @const */ SQLError.DATABASE_ERR = 1; /** @static @type {number} @const */ SQLError.VERSION_ERR = 2; /** @static @type {number} @const */ SQLError.TOO_LARGE_ERR = 3; /** @static @type {number} @const */ SQLError.QUOTA_ERR = 4; /** @static @type {number} @const */ SQLError.SYNTAX_ERR = 5; /** @static @type {number} @const */ SQLError.CONSTRAINT_ERR = 6; /** @static @type {number} @const */ SQLError.TIMEOUT_ERR = 7; /** @type {number} @const */ SQLError.prototype.code = 0; /** @type {string} @const */ SQLError.prototype.message = null; SQLError = {}; /** @type {string} @const */ MessageEvent.prototype.origin = null; /** @type {string} @const */ MessageEvent.prototype.lastEventId = null; /** @type {Window} @const */ MessageEvent.prototype.source = 0; MessageEvent.prototype = new Event(); MessageEvent = {}; /** @type {number} @const */ History.prototype.length = 0; /** @type {Object} @const */ History.prototype.state = 0; /** @param {Object} [data] @param {string} [title] @param {string} [url] @return {void} */ History.prototype.pushState = function(data,title,url) {}; /** @param {Object} [data] @param {string} [title] @param {string} [url] @return {void} */ History.prototype.replaceState = function(data,title,url) {}; History = {}; /** @param {string} [url] @return {void} */ Location.prototype.assign = function(url) {}; /** @param {string} [url] @return {string} */ Location.prototype.resolveURL = function(url) {}; Location = {}; /** @static @type {number} @const */ SQLException.UNKNOWN_ERR = 0; /** @static @type {number} @const */ SQLException.DATABASE_ERR = 1; /** @static @type {number} @const */ SQLException.VERSION_ERR = 2; /** @static @type {number} @const */ SQLException.TOO_LARGE_ERR = 3; /** @static @type {number} @const */ SQLException.QUOTA_ERR = 4; /** @static @type {number} @const */ SQLException.SYNTAX_ERR = 5; /** @static @type {number} @const */ SQLException.CONSTRAINT_ERR = 6; /** @static @type {number} @const */ SQLException.TIMEOUT_ERR = 7; /** @type {number} @const */ SQLException.prototype.code = 0; /** @type {string} @const */ SQLException.prototype.message = null; SQLException.prototype = new Error(); SQLException = {}; /** @type {string} */ HTMLImageElement.prototype.crossOrigin = null; /** @type {boolean} @const */ HTMLImageElement.prototype.complete = 0; /** @type {number} @const */ HTMLImageElement.prototype.naturalHeight = 0; /** @type {number} @const */ HTMLImageElement.prototype.naturalWidth = 0; HTMLImageElement.prototype = new HTMLElement(); HTMLImageElement = {}; /** @type {number} */ HTMLCanvasElement.prototype.width = 0; /** @type {number} */ HTMLCanvasElement.prototype.height = 0; /** @param {string} contextId @param {...*} [args] @return {CanvasRenderingContext2D} */ HTMLCanvasElement.prototype.getContext = function(contextId,args) {}; /** @param {string} [String] @param {*} [args] @return {string} */ HTMLCanvasElement.prototype.toDataURL = function(String,args) {}; HTMLCanvasElement.prototype = new HTMLElement(); HTMLCanvasElement = {}; /** @param {SVGMatrix} [transform] */ CanvasPattern.prototype.setTransform = function(transform) {}; CanvasPattern = {}; SVGMatrix.prototype.inverse = function() {}; SVGMatrix = {}; /** @type {HTMLCanvasElement} @const */ CanvasRenderingContext2D.prototype.canvas = 0; /** @type {number} */ CanvasRenderingContext2D.prototype.globalAlpha = 0; /** @type {string} */ CanvasRenderingContext2D.prototype.globalCompositeOperation = null; /** @type {String|CanvasGradient|CanvasPattern} */ CanvasRenderingContext2D.prototype.fillStyle = 0; /** @type {String|CanvasGradient|CanvasPattern} */ CanvasRenderingContext2D.prototype.strokeStyle = 0; /** @type {Number} */ CanvasRenderingContext2D.prototype.lineWidth = 0; /** @type {string} */ CanvasRenderingContext2D.prototype.lineCap = null; /** @type {string} */ CanvasRenderingContext2D.prototype.lineJoin = null; /** @type {Number} */ CanvasRenderingContext2D.prototype.miterLimit = 0; /** @type {Number} */ CanvasRenderingContext2D.prototype.shadowOffsetX = 0; /** @type {Number} */ CanvasRenderingContext2D.prototype.shadowOffsetY = 0; /** @type {Number} */ CanvasRenderingContext2D.prototype.shadowBlur = 0; /** @type {string} */ CanvasRenderingContext2D.prototype.shadowColor = null; /** @type {string} */ CanvasRenderingContext2D.prototype.font = null; /** @type {string} */ CanvasRenderingContext2D.prototype.textAlign = null; /** @type {string} */ CanvasRenderingContext2D.prototype.textBaseline = null; CanvasRenderingContext2D.prototype.save = function() {}; CanvasRenderingContext2D.prototype.restore = function() {}; /** @param {number} x @param {number} y */ CanvasRenderingContext2D.prototype.scale = function(x,y) {}; /** @param {number} angle */ CanvasRenderingContext2D.prototype.rotate = function(angle) {}; /** @param {number} x @param {number} y */ CanvasRenderingContext2D.prototype.translate = function(x,y) {}; /** @param {number} m11 @param {number} m12 @param {number} m21 @param {number} m22 @param {number} dx @param {number} dy */ CanvasRenderingContext2D.prototype.transform = function(m11,m12,m21,m22,dx,dy) {}; /** @param {number} m11 @param {number} m12 @param {number} m21 @param {number} m22 @param {number} dx @param {number} dy */ CanvasRenderingContext2D.prototype.setTransform = function(m11,m12,m21,m22,dx,dy) {}; /** @param {number} x0 @param {number} y0 @param {number} x1 @param {number} y1 @return {CanvasGradient} */ CanvasRenderingContext2D.prototype.createLinearGradient = function(x0,y0,x1,y1) {}; /** @param {number} x0 @param {number} y0 @param {number} r0 @param {number} x1 @param {number} y1 @param {number} r1 @return {CanvasGradient} */ CanvasRenderingContext2D.prototype.createRadialGradient = function(x0,y0,r0,x1,y1,r1) {}; /** @param {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} image @param {string} repetition @return {CanvasPattern} */ CanvasRenderingContext2D.prototype.createPattern = function(image,repetition) {}; /** @param {Number} x @param {Number} y @param {Number} w @param {Number} h */ CanvasRenderingContext2D.prototype.clearRect = function(x,y,w,h) {}; /** @param {Number} x @param {Number} y @param {Number} w @param {Number} h */ CanvasRenderingContext2D.prototype.fillRect = function(x,y,w,h) {}; /** @param {Number} x @param {Number} y @param {Number} w @param {Number} h */ CanvasRenderingContext2D.prototype.strokeRect = function(x,y,w,h) {}; CanvasRenderingContext2D.prototype.beginPath = function() {}; CanvasRenderingContext2D.prototype.closePath = function() {}; /** @param {Number} x @param {Number} y */ CanvasRenderingContext2D.prototype.moveTo = function(x,y) {}; /** @param {Number} x @param {Number} y */ CanvasRenderingContext2D.prototype.lineTo = function(x,y) {}; /** @param {Number} cpx @param {Number} cpy @param {Number} x @param {Number} y */ CanvasRenderingContext2D.prototype.quadraticCurveTo = function(cpx,cpy,x,y) {}; /** @param {Number} cp1x @param {Number} cp1y @param {Number} cp2x @param {Number} cp2y @param {Number} x @param {Number} y */ CanvasRenderingContext2D.prototype.bezierCurveTo = function(cp1x,cp1y,cp2x,cp2y,x,y) {}; /** @param {Number} x1 @param {Number} y1 @param {Number} x2 @param {Number} y2 @param {Number} radius */ CanvasRenderingContext2D.prototype.arcTo = function(x1,y1,x2,y2,radius) {}; /** @param {Number} x @param {Number} y @param {Number} w @param {Number} h */ CanvasRenderingContext2D.prototype.rect = function(x,y,w,h) {}; /** @param {Number} x @param {Number} y @param {Number} radius @param {Number} startAngle @param {Number} endAngle @param {boolean} [anticlockwise] */ CanvasRenderingContext2D.prototype.arc = function(x,y,radius,startAngle,endAngle,anticlockwise) {}; CanvasRenderingContext2D.prototype.fill = function() {}; CanvasRenderingContext2D.prototype.stroke = function() {}; CanvasRenderingContext2D.prototype.clip = function() {}; /** @param {Number} x @param {Number} y @return {boolean} */ CanvasRenderingContext2D.prototype.isPointInPath = function(x,y) {}; /** @param {Element} element @param {Number} xCaret @param {Number} yCaret @param {boolean} [canDrawCustom] */ CanvasRenderingContext2D.prototype.drawFocusRing = function(element,xCaret,yCaret,canDrawCustom) {}; /** @param {string} text @param {Number} x @param {Number} y @param {Number} [maxWidth] */ CanvasRenderingContext2D.prototype.fillText = function(text,x,y,maxWidth) {}; /** @param {string} text @param {Number} x @param {Number} y @param {Number} [maxWidth] */ CanvasRenderingContext2D.prototype.strokeText = function(text,x,y,maxWidth) {}; /** @param {string} text @return {TextMetrics} */ CanvasRenderingContext2D.prototype.measureText = function(text) {}; /** @param {Element} img_elem @param {Number} dx_or_sx @param {Number} dy_or_sy @param {Number} [dw_or_sw] @param {Number} [dh_or_sh] @param {Number} [dx] @param {Number} [dy] @param {Number} [dw] @param {Number} [dh] */ CanvasRenderingContext2D.prototype.drawImage = function(img_elem,dx_or_sx,dy_or_sy,dw_or_sw,dh_or_sh,dx,dy,dw,dh) {}; /** @param {ImageData|Number} imagedata_or_sw @param {Number} [sh] @return {ImageData} */ CanvasRenderingContext2D.prototype.createImageData = function(imagedata_or_sw,sh) {}; /** @param {Number} sx @param {Number} sy @param {Number} sw @param {Number} sh @return {ImageData} */ CanvasRenderingContext2D.prototype.getImageData = function(sx,sy,sw,sh) {}; /** @param {ImageData} image_data @param {Number} dx @param {Number} dy @param {Number} [dirtyX] @param {Number} [dirtyY] @param {Number} [dirtyWidth] @param {Number} [dirtyHeight] */ CanvasRenderingContext2D.prototype.putImageData = function(image_data,dx,dy,dirtyX,dirtyY,dirtyWidth,dirtyHeight) {}; CanvasRenderingContext2D = {}; /** @param {Number} offset @param {string} color */ CanvasGradient.prototype.addColorStop = function(offset,color) {}; CanvasGradient = {}; /** @type {CanvasPixelArray} @const */ ImageData.prototype.data = 0; /** @type {Number} @const */ ImageData.prototype.width = 0; /** @type {Number} @const */ ImageData.prototype.height = 0; ImageData = {}; /** @type {Number} @const */ CanvasPixelArray.prototype.length = 0; CanvasPixelArray = {}; /** @type {Number} @const */ TextMetrics.prototype.width = 0; TextMetrics = {}; /** @type {WorkerNavigator} @const */ Window.prototype.navigator = 0; /** @type {Storage} @const */ Window.prototype.localStorage = 0; /** @type {Storage} @const */ Window.prototype.sessionStorage = 0; /** @param {Function} callback @param {Element} element @return {Number} */ Window.prototype.webkitRequestAnimationFrame = function(callback,element) {}; /** @param {Function} callback @return {void} */ Window.prototype.webkitCancelRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {Number} */ Window.prototype.msRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {void} */ Window.prototype.msCancelRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {Number} */ Window.prototype.oRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {void} */ Window.prototype.oCancelRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {Number} */ Window.prototype.mozRequestAnimationFrame = function(callback) {}; /** @param {Function} callback @return {void} */ Window.prototype.mozCancelRequestAnimationFrame = function(callback) {}; /** @param {function(number):void} callback @return {Number} */ Window.prototype.requestAnimationFrame = function(callback) {}; /** @param {number} handle @return {void} */ Window.prototype.cancelRequestAnimationFrame = function(handle) {}; /** @param {...string} [urls] @return {void} */ Window.prototype.importScripts = function(urls) {}; /** @param {string} name @param {string} version @param {string} displayName @param {Number} estimatedSize @param {DatabaseCallback|Function} [creationCallback] @return {Database} */ Window.prototype.openDatabase = function(name,version,displayName,estimatedSize,creationCallback) {}; /** @param {string} name @param {string} version @param {string} displayName @param {Number} estimatedSize @param {DatabaseCallback|Function} [creationCallback] @return {Database} */ Window.prototype.openDatabaseSync = function(name,version,displayName,estimatedSize,creationCallback) {}; Window = {}; WorkerNavigator = {}; /** @type {Function} */ AbstractWorker.prototype.onerror = 0; AbstractWorker = {}; /** * @interface */ function Transferable() {} /** @type {function({data: Object})} */ Worker.prototype.onmessage = 0; /** @param {string} scriptURL @constructor */ function Worker(scriptURL) {} Worker.prototype.terminate = function() {}; /** @param {*} message @param {Transferable[]} [transferList] */ Worker.prototype.postMessage = function(message,transferList) {}; Worker.prototype = new AbstractWorker(); /** @type {Function} @const */ SharedWorker.prototype.port = 0; SharedWorker.prototype = new AbstractWorker(); SharedWorker = {}; /** * @interface */ function Storage() {} /** @type {number} @const */ Storage.prototype.length = 0; /** @param {number} index @return {string} */ Storage.prototype.key = function(index) {}; /** @param {string} key */ Storage.prototype.getItem = function(key) {}; /** @param {string} key @param {String|*} data */ Storage.prototype.setItem = function(key,data) {}; /** @param {string} key */ Storage.prototype.removeItem = function(key) {}; Storage.prototype.clear = function() {}; /** @static @type {number} @const */ WebSocket.CONNECTING = 0; /** @static @type {number} @const */ WebSocket.OPEN = 1; /** @static @type {number} @const */ WebSocket.CLOSING = 2; /** @static @type {number} @const */ WebSocket.CLOSED = 3; /** @type {string} */ WebSocket.prototype.url = null; /** @type {number} @const */ WebSocket.prototype.readyState = 0; /** @type {number} @const */ WebSocket.prototype.bufferedAmount = 0; /** @type {string} @const */ WebSocket.prototype.extensions = null; /** @type {string} @const */ WebSocket.prototype.protocol = null; /** @type {function(Event)} */ WebSocket.prototype.onopen = 0; /** @type {function({data: (String|Blob|ArrayBuffer)})} */ WebSocket.prototype.onmessage = 0; /** @type {function(Event)} */ WebSocket.prototype.onerror = 0; /** @type {function({code: Number, reason: String, wasClean: Boolean})} */ WebSocket.prototype.onclose = 0; /** @param {string} url @param {...string} protocols @constructor */ function WebSocket(url,protocols) {} /** @param {String|ArrayBuffer|ArrayBufferView|Blob} data */ WebSocket.prototype.send = function(data) {}; /** @param {number} [code] @param {string} [reason] */ WebSocket.prototype.close = function(code,reason) {}; /** @type {number} */ ArrayBuffer.prototype.byteLength = 0; /** @param {number} length @constructor */ function ArrayBuffer(length) {} /** @type {ArrayBuffer} @const */ DataView.prototype.buffer = 0; /** @type {number} @const */ DataView.prototype.byteOffset = 0; /** @type {number} @const */ DataView.prototype.byteLength = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function DataView(bufferOrArrayOrLength,byteOffset,length) {} /** @param {number} [byteOffset] @return {number} */ DataView.prototype.getInt8 = function(byteOffset) {}; /** @type {ArrayBuffer} @const */ ArrayBufferView.prototype.buffer = 0; /** @type {number} @const */ ArrayBufferView.prototype.byteOffset = 0; /** @type {number} @const */ ArrayBufferView.prototype.byteLength = 0; /** @constructor */ function ArrayBufferView() {} /** @static @type {number} @const */ Int8Array.BYTES_PER_ELEMENT = 8; Int8Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Int8Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Int8Array} array @param {number} [offset] @return {void} */ Int8Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Int8Array} */ Int8Array.prototype.subarray = function(begin,end) {}; Int8Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Uint8Array.BYTES_PER_ELEMENT = 8; /** @type {number} @const */ Uint8Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Uint8Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Uint8Array} array @param {number} [offset] @return {void} */ Uint8Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Uint8Array} */ Uint8Array.prototype.subarray = function(begin,end) {}; Uint8Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Int16Array.BYTES_PER_ELEMENT = 16; /** @type {number} @const */ Int16Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Int16Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Int16Array} array @param {number} [offset] @return {void} */ Int16Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Int16Array} */ Int16Array.prototype.subarray = function(begin,end) {}; Int16Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Uint16Array.BYTES_PER_ELEMENT = 16; /** @type {number} @const */ Uint16Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Uint16Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Uint16Array} array @param {number} [offset] @return {void} */ Uint16Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Uint16Array} */ Uint16Array.prototype.subarray = function(begin,end) {}; Uint16Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Int32Array.BYTES_PER_ELEMENT = 32; /** @type {number} @const */ Int32Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Int32Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Int32Array} array @param {number} [offset] @return {void} */ Int32Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Int32Array} */ Int32Array.prototype.subarray = function(begin,end) {}; Int32Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Uint32Array.BYTES_PER_ELEMENT = 32; /** @type {number} @const */ Uint32Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {Number} [byteOffset] @param {Number} [length] @constructor */ function Uint32Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Uint32Array} array @param {Number} [offset] @return {void} */ Uint32Array.prototype.set = function(array,offset) {}; /** @param {Number} begin @param {Number} [end] @return {Uint32Array} */ Uint32Array.prototype.subarray = function(begin,end) {}; Uint32Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Float32Array.BYTES_PER_ELEMENT = 32; /** @type {number} @const */ Float32Array.prototype.length = 0; /** @param bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Float32Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Float32Array} array @param {number} [offset] @return {void} */ Float32Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Float32Array} */ Float32Array.prototype.subarray = function(begin,end) {}; Float32Array.prototype = new ArrayBufferView(); /** @static @type {number} @const */ Float64Array.BYTES_PER_ELEMENT = 64; /** @type {number} @const */ Float64Array.prototype.length = 0; /** @param {number} bufferOrArrayOrLength @param {number} [byteOffset] @param {number} [length] @constructor */ function Float64Array(bufferOrArrayOrLength,byteOffset,length) {} /** @param {Float64Array} array @param {number} [offset] @return {void} */ Float64Array.prototype.set = function(array,offset) {}; /** @param {number} begin @param {number} [end] @return {Float64Array} */ Float64Array.prototype.subarray = function(begin,end) {}; Float64Array.prototype = new ArrayBufferView(); /** @param {Function} successCallback @param {Function} [errorCallback] @param {Object} [options] @return {void} */ Geolocation.prototype.getCurrentPosition = function(successCallback,errorCallback,options) {}; /** @param {Function} successCallback @param {Function} [errorCallback] @param {Object} [options] @return {Number} */ Geolocation.prototype.watchPosition = function(successCallback,errorCallback,options) {}; /** @param {Number} [watchId] */ Geolocation.prototype.clearWatch = function(watchId) {}; Geolocation = {}; /** @type {Geolocation} @const */ Navigator.prototype.geolocation = 0; Navigator = {}; /** @type {boolean} */ PositionOptions.prototype.enableHighAccuracy = 0; /** @type {Number} */ PositionOptions.prototype.timeout = 0; /** @type {Number} */ PositionOptions.prototype.maximumAge = 0; PositionOptions = {}; /** @type {Coordinates} */ Position.prototype.coords = 0; /** @type {Number} */ Position.prototype.timestamp = 0; Position = {}; /** @type {Number} @const */ Coordinates.prototype.latitude = 0; /** @type {Number} @const */ Coordinates.prototype.longitude = 0; /** @type {Number} @const */ Coordinates.prototype.altitude = 0; /** @type {Number} @const */ Coordinates.prototype.accuracy = 0; /** @type {Number} @const */ Coordinates.prototype.altitudeAccuracy = 0; /** @type {Number} @const */ Coordinates.prototype.heading = 0; /** @type {Number} @const */ Coordinates.prototype.speed = 0; Coordinates = {}; /** @type {number} @const */ PositionError.prototype.PERMISSION_DENIED = 1; /** @type {number} @const */ PositionError.prototype.POSITION_UNAVAILABLE = 2; /** @type {number} @const */ PositionError.prototype.TIMEOUT = 3; /** @type {number} @const */ PositionError.prototype.code = 0; /** @type {string} @const */ PositionError.prototype.message = null; PositionError = {}; /** * @interface */ function XMLHttpRequestEventTarget() {} /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onloadstart = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onprogress = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onabort = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onerror = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onload = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.ontimeout = 0; /** @type {function(Event)} */ XMLHttpRequestEventTarget.prototype.onloadend = 0; XMLHttpRequestEventTarget.prototype = new EventTarget(); /** * @interface */ function XMLHttpRequestUpload() {} XMLHttpRequestUpload.prototype = new XMLHttpRequestEventTarget(); /** @param {string} name @param {Object} value @return {void} */ FormData.prototype.append = function(name,value) {}; FormData = {}; /** @type {boolean} */ HTMLSelectElement.prototype.autofocus = 0; /** @type {boolean} */ HTMLSelectElement.prototype.required = 0; /** @type {HTMLCollection} */ HTMLSelectElement.prototype.selectedOptions = 0; /** @type {string} */ HTMLSelectElement.prototype.validationMessage = null; /** @type {ValidityState} */ HTMLSelectElement.prototype.validity = 0; /** @type {boolean} @const */ HTMLSelectElement.prototype.willValidate = 0; /** @return {boolean} */ HTMLSelectElement.prototype.checkValidity = function() {}; /** @param {Number} index @return {Element} */ HTMLSelectElement.prototype.item = function(index) {}; /** @param {string} name @return {Element} */ HTMLSelectElement.prototype.namedItem = function(name) {}; /** @param {string} [error] @return {void} */ HTMLSelectElement.prototype.setCustomValidity = function(error) {}; HTMLSelectElement = {}; /** * @interface */ function ValidityState() {} /** @type {boolean} @const */ ValidityState.prototype.valueMissing = 0; /** @type {boolean} @const */ ValidityState.prototype.typeMismatch = 0; /** @type {boolean} @const */ ValidityState.prototype.patternMismatch = 0; /** @type {boolean} @const */ ValidityState.prototype.tooLong = 0; /** @type {boolean} @const */ ValidityState.prototype.rangeUnderflow = 0; /** @type {boolean} @const */ ValidityState.prototype.rangeOverflow = 0; /** @type {boolean} @const */ ValidityState.prototype.stepMismatch = 0; /** @type {boolean} @const */ ValidityState.prototype.badInput = 0; /** @type {boolean} @const */ ValidityState.prototype.customError = 0; /** @type {boolean} @const */ ValidityState.prototype.valid = 0; /** @type {HTMLHeadElement} @const */ Document.prototype.head = 0; Document = {}; /** @param {Function} callback @constructor */ function MutationObserver(callback) {} /** @param {Node} target @param {{childList:boolean, attributes:boolean, characterData:boolean, subtree:boolean, attributeOldValue:boolean, characterDataOldValue:boolean, attributeFilter:Array<String>}} options @return {void} */ MutationObserver.prototype.observe = function(target,options) {}; /** @return {void} */ MutationObserver.prototype.disconnect = function() {}; /** @return {Array<MutationRecord>} */ MutationObserver.prototype.takeRecords = function() {}; /** @type {string} @const */ MutationRecord.prototype.type = null; /** @type {Node} @const */ MutationRecord.prototype.target = 0; /** @type {NodeList} @const */ MutationRecord.prototype.addedNodes = 0; /** @type {NodeList} @const */ MutationRecord.prototype.removedNodes = 0; /** @type {Node} @const */ MutationRecord.prototype.previousSibling = 0; /** @type {Node} @const */ MutationRecord.prototype.nextSibling = 0; /** @type {string} @const */ MutationRecord.prototype.attributeName = null; /** @type {string} @const */ MutationRecord.prototype.attributeNamespace = null; /** @type {string} @const */ MutationRecord.prototype.oldValue = null; MutationRecord = {}; /** * @interface */ function DataTransferItem() {} /** @type {string} @const */ DataTransferItem.prototype.kind = null; /** @type {string} @const */ DataTransferItem.prototype.type = null; /** @param {function(string):void} [_callback] */ DataTransferItem.prototype.getAsString = function(_callback) {}; /** @return {File} */ DataTransferItem.prototype.getAsFile = function() {}; /** * @interface */ function DataTransferItemList() {} /** @type {number} @const */ DataTransferItemList.prototype.length = 0; /** @param {number} index @return {DataTransferItem} */ DataTransferItemList.prototype.getDataTransferItem = function(index) {}; /** @param {string} data @param {string} type */ DataTransferItemList.prototype.add = function(data,type) {}; /** @param {File} data */ DataTransferItemList.prototype.add = function(data) {}; /** @param {number} index */ DataTransferItemList.prototype.remove = function(index) {}; DataTransferItemList.prototype.clear = function() {}; /** * @interface */ function DataTransfer() {} /** @type {string} */ DataTransfer.prototype.dropEffect = null; /** @type {string} */ DataTransfer.prototype.effectAllowed = null; /** @type {DataTransferItemList} @const */ DataTransfer.prototype.items = 0; /** @type {String[]} @const */ DataTransfer.prototype.types = 0; /** @type {FileList} @const */ DataTransfer.prototype.files = 0; /** @param {Element} image @param {number} x @param {number} y */ DataTransfer.prototype.setDragImage = function(image,x,y) {}; /** @param {string} format @return {string} */ DataTransfer.prototype.getData = function(format) {}; /** @param {string} format @param {string} data */ DataTransfer.prototype.setData = function(format,data) {}; /** @param {string} [format] */ DataTransfer.prototype.clearData = function(format) {}; /** @type {string} */ XMLHttpRequest.prototype.responseType = null; /** @type {Object} */ XMLHttpRequest.prototype.response = 0; /** @type {boolean} */ XMLHttpRequest.prototype.withCredentials = 0; /** @type {XMLHttpRequestEventTarget} @const */ XMLHttpRequest.prototype.upload = 0; /** @param {string} mimeType */ XMLHttpRequest.prototype.overrideMimeType = function(mimeType) {}; /** @type {string} */ HTMLFormElement.prototype.autocomplete = null; /** @type {boolean} */ HTMLFormElement.prototype.noValidate = 0;
相关推荐
在HTML5中,许多旧的标签被废弃,同时引入了一系列新的标签,以更好地帮助开发者结构化和语义化网页内容。 一、新引入的HTML标签 1. `<article>`:定义独立的内容,如博客文章、新闻报道或评论,可以独立于文档的...
这个“html5最终版规范pdf版”详细阐述了这些特性和API的使用方法,是开发者深入学习HTML5的必备文档。通过阅读这份规范,开发者不仅可以了解到HTML5的所有新功能,还能理解如何在实际项目中有效地应用这些技术,...
### HTML5 最终规范知识点详解 #### 一、概述 HTML5是超文本标记语言(HyperText Markup Language)的第五次重大修订版本,由万维网联盟(World Wide Web Consortium, W3C)于2014年10月28日正式发布为推荐标准。...
1. 元素:是HTML5中最吸引人的特性之一,通过JavaScript的绘图API,开发者可以动态创建和修改图形。虽然当前各浏览器对所有API的支持程度不一,但其潜力巨大,可用于创建复杂的动态图形和游戏。 - ...
5. **文本特效**:`text-shadow`为文本添加阴影,`text-overflow`处理溢出文本,`word-wrap`允许单词换行,`text-decoration`新增了下划线、上划线和删除线样式。 6. **过渡与动画**:`transition`定义元素从一种...
HTML5的出现,不仅更新了原有的HTML4规范,还引入了大量的新元素、API接口以及对多媒体支持的改进,从而更好地适应了互联网发展的需求。 1. **新元素的引入**:HTML5引入了许多新的语义元素,如、、、、、等,这些...
根据提供的文件信息,“HTML5高级程序设计”似乎是一份关于HTML5基础知识的学习文档。下面将对这份文档可能涉及的关键知识点进行详细的阐述。 ### HTML5概述 1. **定义与历史**: - HTML5是超文本标记语言...
它曾出现在早期HTML规范中,但已被废弃。 3. **选项C中的`<samp>`** 不是HTML5新增的标签。`<samp>`标签用于表示样本输出或程序代码中的样本数据。 4. **选项D中的`<s>`** 也不属于HTML5新增标签。此标签用于表示...
7. 表单控件:HTML5对表单元素进行了增强,如新增了日期选择器、电子邮件输入类型、搜索框等,同时增加了验证功能,可以对用户输入进行客户端验证。 8. Geolocation API:允许网页获取用户的地理位置信息,为地理...
在开发过程中,对照这个API文档,能帮助开发者编写出更规范、更高效的代码,降低出错的可能性。 总的来说,JDK 11中文API修订版是Java开发者不可或缺的工具,它不仅包含了Java 11的所有新特性和改进,还提供了准确...
这个“HTML5中文手册--W3C标准”提供了一份详尽的指南,帮助开发者理解和运用这一规范。 HTML5的核心改进包括以下几个方面: 1. **语义化标签**:为了提高网页内容的可读性和可访问性,HTML5引入了新的语义化标签...
HTML5是HyperText Markup Language的第五个版本,它引入了许多新的元素、属性和API,旨在简化网页结构,增强多媒体支持,以及提高离线存储和数据交换的能力。以下是一些关键知识点: 1. **新元素**:HTML5新增了`...
`J2EE1.5.chm`是Java 2企业版1.5的API文档,包含了Servlet、JSP、EJB等技术规范,是构建分布式、多层架构的企业级应用的重要基础。熟悉J2EE API,开发者可以更好地理解和使用这些技术,构建出健壮、可扩展的应用。 ...
Stream API是Java 8新增的一个重要组件,它提供了丰富的操作符,如`filter()`, `map()`, `reduce()`, `collect()`等,用于处理集合数据。Stream API支持串行和并行处理,能充分利用多核处理器的优势,提高程序性能。...
HTML5通过标准化的技术规范,减少了这种差异,提高了跨浏览器的一致性。 - **文档结构描述问题**:HTML4之前,文档结构往往依靠`<div>`元素来描述,这种方式导致文档结构的意义不够清晰。HTML5引入了一系列新的语义...
HTML(HyperText Markup Language)是用于创建网页的标准标记语言,其发展历程从HTML4逐渐演进到HTML5。...参考手册如“html5.chm”和“html.chm”可以提供详细的语法和特性说明,是学习和开发过程中的重要工具。