摘要:进入域后判断是移动端还是端显示不同的页面很多情况下,一个应用会有和移动端两个版本,而这两个版本因为差别大,内容多,所以不能用响应式开发但是多带带开发,而域名只有一个,用户进入域后直接返回对应设备的应用,做法主要有两种前端判断并跳转进入一个应用
进入域后判断是移动端还是pc端显示不同的页面(PC/MOBILE)
很多情况下,一个应用会有PC和移动端两个版本,而这两个版本因为差别大,内容多,所以不能用响应式开发但是多带带开发,而域名只有一个,用户进入域后直接返回对应设备的应用,做法主要有两种:
前端判断并跳转
进入一个应用或者一个空白页面后,通过navigator.userAgent来判断用户访问的设备类型,进行跳转
后端判断并响应对应的应用
用户地址栏进入域的时候,服务器能接收到请求头上包含的userAgent信息,判断之后返回对应应用
function foo(){ getName = function(){console.log(1)} return this } foo.getName = function(){console.log(2)} foo.prototype.getName = function(){console.log(3)} var getName = function(){console.log(4)} function getName(){console.log(5)} foo.getName()//2 //foo是一个函数,也可以说是一个对象,所以它也可以挂载一些属性和方法,18行在其上挂载了一个getName方法 //执行的结果是 getName()//4 //21行有一个全局函数,全局函数声明提前后被20行的getName覆盖,所以输出4 foo().getName()//1 //foo()执行完成后,将全局的getName也就是window.getName给更改后返回this,而在这里this执行的就是window,所以最后执行的就是window.getName,所以输出1 getName()//1 //在上面已经更改全局的getName,所以依然是1 new foo.getName()//2 //new 操作符在实例化构造器的时候,会执行构造器函数,也就是说,foo.getName会执行,输出2 new foo().getName()//3 //new操作符的优先级较高,所以会先new foo()得到一个实例,然后再执行实例的getName方法,这个时候,实例的构造器里没有getName方法,就会执行构造器原型上的getName方法 new new foo().getName()//3 //先执行new foo()得到一个实例,然后在new 这个实例的getName方法,这个时候会执行这个方法,所以输出3 //除了本地对象的方法,其他的函数都能new
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92290.html
摘要:接下来做端一般都写手机最大也就先隐藏手机菜单和按钮优先级问题解决方法直接使用用谷歌开发者工具查看优先级里面的垂直居中再把写成布局只要改成里面的子项目就变成一行了菜单导航导航导航导航导航到航导航导航导航导航方法切换元素的可见状态。 CSS5:移动端页面(响应式) 如果手机端和PC端页面差别很大,就不要写响应式,不要写@media 就直接将两个页面拆开成两个文件就可以了.关于判断是手机端你...
摘要:给网站加谷歌翻译,搜索引擎一搜一大堆,这里不再赘述。,原生,并且谷歌显示在右侧。,为什么把中的改成了理由同,为什么的前面加了个符号这里正是谷歌翻译的一个,猜测和中的某些正则匹配有关。 给网站加谷歌翻译,搜索引擎一搜一大堆,这里不再赘述。只贴一个申请谷歌翻译的一个地址:https://translate.google.com/...和一段代码: 下面是官方给出的代码: function...
阅读 2820·2021-09-22 15:43
阅读 4525·2021-09-06 15:02
阅读 811·2019-08-29 13:55
阅读 1651·2019-08-29 12:58
阅读 3018·2019-08-29 12:38
阅读 1172·2019-08-26 12:20
阅读 2232·2019-08-26 12:12
阅读 3252·2019-08-23 18:35