draggable
属性支持的拖放 APIcontenteditable
属性支持的编辑 APInavigator
:navigator.geolocation
。JavaScript 对象 navigator
包含了很有用的有关访问者的浏览器和系统的信息。Geolocation 可以使用 IP 地址、基于 Web 的数据库、无线网络连接和三角测量或 GPS 技术来确定经度和纬度。一定要注意 Geolocation 所提供信息的精确性会由于获取信息的方式不同而有所差别。有时候,您可能无法精确地读取某些位置的地理信息,甚至完全无法读取。navigator.geolocation
对象来确定用户所使用设备的位置信息。在获得了位置信息之后,脚本会基于所获得的数据创建和生成一个位置对象。navigator.geolocation
对象具有 3 个方法:getCurrentPosition()
watchPosition()
clearWatch()
getCurrentPosition()
方法能够获取用户的当前位置,但是只能获取一次。当脚本调用这个方法时,这个方法会以异步方式获取宿主设备的当前位置。异步通信 表示发送者和接收者在通信时并不是同时加入的。使用异步的通信方式使浏览器能够继续执行其他活动,这样它就不需要等待接收实体的响应。getCurrentPosition()
方法最多可以接收 3 个参数:geolocationSuccess
。 当前位置的回调函数(必需的)geolocationError
。 出现错误时执行的回调函数(可选的)geolocationOptions
。 地理位置选项(可选的)navigator.geolocation.getCurrentPositon()
方法会将宿主设备的当前位置通过一个 Position
对象以参数的形式返回给回调函数 geolocationSuccess
。如果出现错误,那么它会使用一个 PositionError
对象来调用回调函数 geolocationError
。您可以为 geolocationOptions
设置 3 个属性:enableHighAccuracy
、timeout
和maximumAge
。如果设备支持,分别指定位置返回的超时时间和缓存位置可以使用的最长时间,那么这些可选属性就能够提高精确度。getCurrentPosition()
方法的调用方式如下所示:void navigator.geolocation.getCurrentPosition( geolocationSuccess, geolocationError, geolocationOptions);watchPosition() 方法
watchPosition()
方法会定期查询用户的位置,观察用户位置是否发生了变化。它最多可以接收 3 个参数。watchPosition
时,它会异步地启动一个观察进程,包括获取一个新的 Position
对象和创建一个 watchID
。如果获取位置成功,那么关联了 Position
对象的 geolocationSuccess
方法就被调用。如果执行带有非空的 geolocationError
参数的方法出现错误,那么这个方法会产生一个以 PositionError
对象为参数的 geolocationError
。当设备的位置发生变化时,带有新的 Position
对象的回调函数就会被调用。watchPosition()
方法的调用方式如下所示:long navigator.geolocation.watchPosition( geolocationSuccess, geolocationError, geolocationOptions);clearWatch() 方法
clearWatch()
方法会终止一个仍在执行的 watchPosition()
。这个方法只能有一个参数。被调用时,它会查找之前声明的 watchID
参数,并立即停止它。clearWatch()
方法的调用方式如下所示:void navigator.geolocation.clearWatch(watchID)地理数据:Position 对象
Position
。这个对象具有两个属性:timestamp
和coords
。timestamp
属性表示地理数据创建的时间。而 coords
属性包含了 7 个属性:coords.latitude
。 估算的纬度coords.longitude
。 估算的经度coords.altitude
。 估算的高度coords.accuracy
。 所得经度和纬度的估算精度,以米为单位coords.altitudeAccuracy
。 所得高度的估算精度,以米为单位coords.heading
. 宿主设备的当前移动方向,以度为单位,相对于正北方向顺时针方向计算coords.speed
. 设备的当前对地速度,以米/秒为单位coords.latitude
、coords.longitude
和 coords.accuracy
。其他属性返回 null
,取决于设备及其交互的后端定位服务器的功能。heading
和 speed
属性是基于用户的前一个位置计算的(如果有)。(责任编辑:12图资源库)