整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

手把手教你HTML5实现定位当前地理位置



前面文章中写过类似的文章《手把手教你HTML5实现根据LBS定位到商家两点之间距离多少》,建议有兴趣的小伙伴可以看看。

使用 HTML5 Geolocation API 来构建基于地理位置的应用~

各种浏览器对HTML5 Geolocation 的支持

浏览器 版本 只支持HTTPS版本 IE 9+ - Edge 12+ - Firefox 3.5+ - Chrome 5+ 50+ Safari 5+ 39+ iOS Safari 3.2+ 10.2+ Android Browser 2.1+ 56+ Chrome for Android 57+ 57+ UC Browser for Android 11.4+ -

出于安全考虑,部分浏览器只允许通过HTTPS协议使用 Geolocation API。在HTTP协议下使用Geolocation API 浏览器会抛出异常,在开发阶段,127.0.0.1和localhost 等本地域在两种协议下均可使用。

Geolocation API 通过 navigator.geolocation 全局对象进行访问,第一次访问的时候会询问用户是否允许共享位置。

判断浏览器是否支持 Geolocation API

        // 判断浏览器属否支持获取位置
        if(navigator.geolocation){
            console.log("可以获取");
        }else{
            console.log("不支持");
        }

实例代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    获取用户地理位置
    <input type="button" value="点击获取位置" id="btn">
    <script>
        let btnBtn = document.getElementById('btn')
        btnBtn.onclick = () => { // 点击事件
                getAdd()
            }
            // 成功回调
        let success = (position) => {
                console.log(`获取位置成功:${position.coords}`);
                console.log(position.coords); // 获取坐标信息
                // coords的常用属性
                console.log(position.coords.latitude); // 获取坐标纬度
                console.log(position.coords.longitude); // 获取坐标经度
                console.log(position.coords.accuracy); // 获取坐标精度,单位为米
                console.log(position.timestamp); // 获取位置的时间戳

            }
            // 失败回调
        let error = (positionErr) => {
            console.log(`获取位置失败:${positionErr.code}+${positionErr.message}`);
        }

        let options = {
            enableHightAccuracy: false, // 获取高精度的位置信息,可能会增加响应时间,默认是false
            timeout: 30000, // 设置超时时间,单位毫秒,如果到达设定的时间没获取到信息则回触发失败回调,默认值为0,无限大
            maximumAge: 0 // 设置用户位置信息缓存的最大时间
        }
        let getAdd = () => {
            navigator.geolocation.getCurrentPosition(success, error, options)
        }


        // 判断浏览器属否支持获取位置
        if(navigator.geolocation){
            console.log("可以获取");
        }else{
            console.log("不支持");
        }
    </script>
</body>

</html>

当获取位置失败时,会调用失败回调(error函数)。返回的参数<positionErr.code 标识错误的原因><positionErr.message错误信息描述> positionErr.code 值

  • UNKNOWN_ERROR(0): 其他错误
  • PERMISSION_DENIED(1): 用户拒绝分享位置信息
  • POSITION_UNAVAILABLE(2): 获取用户位置信息失败
  • TIMEOUT(3): 获取用户位置信息超时

推荐文章

《手把手教你HTML5实现根据LBS定位到商家两点之间距离多少》
作者:蓝海00
链接:https://www.jianshu.com/p/d0b0b6120055

喽,大家好,我是雷工!

今天继续学习JavaScript基础语法,JS的书写位置,俗话说:好记性不如烂笔头,边学边记,方便回顾。

1、行内JavaScript

代码写在标签内部

示例:

<body>

 <button onclick="alert('你还真信呀?~')">点击关注【雷工笔记】月薪过万</button>

</body>

2、内嵌式JavaScript

2.1、要将JS代码直接写在HTML文件里面。

2.2、在HTML文件中添加一个script,用script标签包住,script标签中的代码就是JS代码。

2.3、script标签的位置可以在HTML文件中的任何地方,但推荐在head标签中或者body标签中。

示例:

<body>
		<script>
 				alert('hello,欢迎关注雷工笔记')
		</script>
</body>

雷工提醒:

我们习惯将<script>标签放在HTML文件的底部附近,原因是浏览器会按照代码在文件中的顺序加载HTML。

如果先加载的JS代码希望修改其下方的HTML,那么其可能因为要修改的HTML还未被加载而失效。所以比较稳妥的策略是将JS代码放在html文件的底部附近。

3、外联式JavaScript

3.1、先创建一个JS文件,后缀名是xxxx.js。

3.2、使用script标签引入JS文件。

示例:

<body>
		 <!--用src引入外部JS文件-->
		 <script src="leigong.js"></script>
</body>

雷工提醒:

外联式JavaScript会让代码看上去更加有序,更容易复用,且没有了脚本的混淆,html也更容易阅读,因此这是值得我们学习的好习惯。

4、重点总结

4.1、外联式中,script标签的位置可以在HTML文件中的任何地方,但推荐在body标签中,尽量写到文件末尾</body>

前面。

4.2、JS中内嵌式写法和外联式写法不可以混合使用,如果外联式写法,script标签中间就不可以再写代码,否则会被忽略,只执行外联部分。

后记

以上是关于JavaScript基础中书写位置的相关知识的笔记,有不当之处还望指正。

想起一句话,貌似是锤子科技发布会上听到的:从来没有什么失败的人,只有半途而废的人。

每天进步一点点,加油。

TML是什么

HTML的全称是超文本标记语言,英文全称是HyperText Markup Language。如果您是零基础的话,看到这个名字,即使是汉语的,估计也会不知所云。

超文本指的是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。通俗来说就是多个文本之间通过超链接相互连接在一起,这些相互连接的文本集合称为"超文本"。超文本是网页制作一个非常重要的概念,可以说网络的精髓就在于"互联"。

这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。(孙素华编著.Dreamweaver CS5 Flash CS5 Photoshop CS5网页设计从入门到精通:中国青年出版社,2014.10:第16页)

标记语言的概念比较复杂,简单来说,HTML并不是程序语言(不同于C或Python),只是一种在网页中显示资料排版位置的标记结构语言。这句话提炼一下就是"标记信息在页面中排版结构的语言"。

如果读的不太明白,在下一节"HTML基本框架"中会对HTML的排版结构规则进行直观展示,如果您读不懂可以尽情的跳过,毕竟我们的重点是怎么用。

HTML基本框架

HTML框架简单说就是任何HTML网页文件中都会包含的基本代码内容。如果我们打算写一个页面,就一定要把框架代码写入后才能正式开始添加内容。框架代码如下:

<!DOCTYPE HTML><html> <head> </head> <body> </body> </html>

第一行 <!DOCTYPE HTML>

第二行 <html>

第三行 <head>

第四行 </head>

第五行 <body>

第六行 </body>

第七行 </html>

这七行代码是所有HTML页面所共有的,也就是HTML的框架了。不信我们来验证一下。

例子一,头条的文章页面(电脑版)网址:https://www.toutiao.com/i6785149184245760516/

笔者使用Firefox(火狐)浏览器,输入网址后点击键盘上的F12,,如图所示

我们可以看到页面下半部分出现了一个调控台。

点击查看器即可看页面代码。代码如下:

放大一些,大家看看,<!DOCTYPE HTML> <html> <head> </head> <body> </body> </html>这些标签是不是一个不少,只是中间多了很多内容而已。

一个例子不具有普适性,下面我们再看一个例子,我随便找了个新闻页面,网址:https://mil.eastday.com/a/200125113254400.html

使用同样的方法打开查看器看代码,如图:

是不是框架中的代码一个也不少吧。

所以,大家请在自己的电脑中新建一个txt文件,将HTML框架粘贴到txt文件中,并命名为"HTML框架"。以后我们写的每一个页面都会从这个框架开始。

通过对框架中的代码进行观察,细心的读者可能已经发现了HTML这种标记语言的书写规律。

规律1:每一个语句都是包含在<>尖括号内的。这是HTML标记语言的基本特点之一,大家一定记牢。

规律2:除了<!DOCTYPE HTML>这个标签外,其他标签都是成对出现!例如<html>与</html>,<head>与</head>,<body>与</body>。

规律3:这个规律通过观察代码也不难发现,即<html></html>两个标签中间夹着<head></head>和<body></body>,我们把<head></head>标签称为<html></html>标签的子标签,反过来<html></html>标签是<head></head>标签的父标签,<head></head>和<body></body>称为并列关系或者兄弟关系。而<!DOCTYPE HTML>是一个声明语句,属于六亲不认的。

各种关系如下图所示:

这样就回到了之前我们解释"标记语言"的问题上。我们说"标记语言"是"标记信息在页面中排版结构的语言",这种父子关系、兄弟关系就可以理解为一个页面的"结构",这种结构又与页面的排版有关。

在下一期中,我们会通过练习来解释"结构"与排版的关系。

喜欢的小伙伴请加关注,有任何问题可以留言给我,欢迎指正批评,感激不尽!

HTML完整学习目录

HTML序章(学习目的、对象、基本概念)——零基础自学网页制作

第一个HTML页面如何写?——零基础自学网页制作

HTML页面中head标签有啥用?——零基础自学网页制作

初识meta标签与SEO——零基础自学网页制作

HTML中的元素使用方法1——零基础自学网页制作

HTML中的元素使用方法2——零基础自学网页制作

HTML元素中的属性1——零基础自学网页制作

HTML元素中的属性2(路径详解)——零基础自学网页制作

使用HTML添加表格1(基本元素)——零基础自学网页制作

使用HTML添加表格2(表格头部与脚部)——零基础自学网页制作

使用HTML添加表格3(间距与颜色)——零基础自学网页制作

使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作

16进制颜色表示与RGB色彩模型——零基础自学网页制作

HTML中的块级元素与内联元素——零基础自学网页制作

初识HTML中的<div>块元素——零基础自学网页制作

在HTML页面中嵌入其他页面的方法——零基础自学网页制作

封闭在家学网页制作!为页面嵌入PDF文件——零基础自学网页制作

HTML表单元素初识1——零基础自学网页制作

HTML表单元素初识2——零基础自学网页制作

HTML表单3(下拉列表、多行文字输入)——零基础自学网页制作

HTML表单4(form的action、method属性)——零基础自学网页制作

HTML列表制作讲解——零基础自学网页制作

为HTML页面添加视频、音频的方法——零基础自学网页制作

音视频格式转换神器与html视频元素加字幕——零基础自学网页制作

HTML中使用<a>标签实现文本内链接——零基础自学网页制作