work notes
本喵,一个快乐的web开发肥宅程序媛,参与过手机端、电视TV端、电脑端的开发。工作之余,总结了一些经验【避坑指南】分享给大家~
1. webView内嵌h5页面时,如果内嵌的页面有出现手机自带键盘或者任何可能触发手机自带键盘操作的需求,答应我,页面顶部导航栏一定要让客户端小伙伴来做。不然,且不说顶部高度需要根据各设备分辨率进行适配,单单手机自带键盘的弹出导致页面高度值及offsetTop值的变化就够你搞一个通宵的补救方案【就算搞出来了,也没有原生的顶部导航辣么完美】。对了,想要用position:fixed定位顶部导航栏的小伙伴听好了,木有用的,不要问我是怎么知道的QAQ……
2. 想要非a标签、input标签等允许获取焦点的元素获取焦点的话,加上tabIndex="1",tabIndex的值正常情况下是不影响的,可以随便填。除非你有用tab键切换焦点的需求,这样的话,需要注意一下,tabIndex值越大,tab值切换越先获取焦点。如果某元素上加上了tabIndex,不想让其点击获取焦点,只想让其按键【keyDown、keyUp等】,给这个元素加上style="pointer-events:none;"就行啦。
3. 使用jq-treetable插件的时候,需要全部展开可以用:$(元素).treetable('expandAll');即可。使用data-tt-id,和data-tt-parent-id的时候,一定注意两个值不能相同,相同会导致代码循环调用,浏览器会直接由于out of memory崩溃掉【鬼知道我为了找这个由于数据引起的bug找了多久。。。】
4. 使用bootstrap写后台代码的时候,经常会遇到自带插件不够用的情况,右转度娘:metronic,这个网站上的很多插件都可以用,源码需要付费才能下载。但是其实它里面用的插件也是网上公用的,很少有它自行开发的那种。所以这就意味着,你可以在网页上查看Element、Network等找出这个插件的名字就能用了。
5. 做手机端开发的时候,经常性有个需求就是,从客户端分享网页去微信或者QQ或者微博啥的。在微信、QQ、微博打开分享网页,有个需求是用户点击查看更多时,需要判断用户是否安装此应用,如果安装了就去打开客户端,未安装跳转到AppStore或者应用市场。
做这部分,一般需要客户端配置短链处理,网页打开直接使用location.href或者iframe打开短链即可。讨厌就讨厌在需要在社交软件里打开,QQ还好,软件未做处理,微信和微博会在打开时做拦截处理,根本不会跳转到短链上去【当然这也是为了用户的信息安全】。
在这里说一下,想去网上搜如何判断用户是否安装某应用的小伙伴不用费心了,是木有的。这时候会有小伙伴跳出来说,不对啊,为啥我从微信里打开部分软件的链接是可以一键跳转的呢?比如网易新闻啥的。哈哈,当时我的亲爱的PM也是这么质问我的。。。
脸上笑嘻嘻,心里MMP的我又跑去调研了。原来IOS9+提供了universal link的处理,可以在微信和QQ等直接打开,Android版和IOS9-的网页会直接跳转到应用宝网页版,应用宝会判断此应用是需要打开还是下载。这时候心里就琢磨,凭啥应用宝会给网易新闻这样的处理呀,不服不服!去应用宝网站一看,,,原来网易是应用宝的客户,人家花了钱的。。。
所以曲线救国,当时的处理方式为:准备一个引导页。点击分享页面,if{是IOS设备,1s后直接跳转到引导页},else{ if{是微信或微博,直接跳转至引导页}else{尝试使用iframe和location.href打开,3s延时后默认打不开软件跳转至引导页}}。引导页逻辑:判断是微信或微博【QQ可以直接打开】尝试使用iframe[仅android]和location.href打开,3s延时后默认打不开软件跳转至下载页[应用宝或AppStore]。
6. 强制不换行 p{white-space:nowrap;} 自动换行 p{word-wrap:break-word;word-break:normal;} 强制英文单词断行 p{word-break:break-all;}
*注意:设置强制将英文单词断行,需要将行内元素设置为块级元素。
嗒哒!今天先到这里喵,欢迎大家批评指正~~~
work notes的更多相关文章
- ASP.NET Core 1.1.0 Release Notes
ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...
- Android Weekly Notes Issue #237
Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...
- Android Weekly Notes Issue #230
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Android Weekly Notes Issue #227
Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...
- Android Weekly Notes Issue #221
Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...
- Android Weekly Notes Issue #219
Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...
- MAGIC XPA最新版本Magic xpa 2.4c Release Notes
New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...
- Magic xpa 2.5发布 Magic xpa 2.5 Release Notes
Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...
- Git for Windows v2.11.0 Release Notes
homepage faq contribute bugs questions Git for Windows v2.11.0 Release Notes Latest update: December ...
随机推荐
- [译] Z-variant (Z变体)
阅读目录 1. Z轴上的区别 2. 问题 Unihan 的 kZVariant 字段 译自: en.wikipedia.org/wiki/Z-variant | 已发布zh.wiki 在Unicode ...
- 懒散的态度就是一剂慢性毒药——《我是一只IT小小鸟》读后感(第四周)
进度拖延是所有团队项目的噩梦,有效的进度管理也许能够解决问题,但我认为更根本的是整个团队的工作态度.大家都希望能够加入一个人人都认真负责积极完成任务的团队,但比如何找这样一个团队更重要的是如何将自己变 ...
- MySQL 练习题2
CREATE TABLE `dept` ( `did` ) NOT NULL AUTO_INCREMENT, `dname` ) DEFAULT NULL, `address` ) DEFAULT N ...
- BIEE总结
一,数据仓库,BI涉及到的相关概念 1.DW: 即数据仓库(Data Warehouse),是一个面向主题的(Subject Oriented).集成的(Integrated).相对稳定的(N ...
- Redis安装和部署--LINUX
一.安装 1.下载3.0.7稳定版本即可 地址:http://www.redis.cn/download.html 2.将 redis-3.0.7.tar.gz 压缩包拷贝到 opt 目录下 3.解压 ...
- git 和github
ssh git: 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如你原来提交过的内容,以后虽然修改了,但是通过git这 ...
- msysgit 上传文件夹,规范化的日常
在我们第一次成功的上传到github之后,要上传文件夹的我们要在msysgit里输入些什么呢? 选择要上传的文件夹前一项右键点击git bash here 进入msysgit后 首先初始化,输入 gi ...
- linux(ubuntu)因为代理网页无法访问
当有一天你打开浏览器的时候,页面上显示,未链接到网络,请检查代理服务器,出现了如下图所示的情况: 但是你检查一下了网络,可以ping通,而且在同一个网络下,你的手机平板可以上网,那么你就想一想,昨天i ...
- JavaBean 规范
JavaBean是公共Java类,需要满以下条件: 1.所有属性为private2.提供默认无参构造方法3.提供getter和setter4.实现serializable接口 具体为: (1)Java ...
- JavaScript浏览器检测之navigator 对象
一.使用客户端检测的原因 由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤. 虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能: 但在现实中 ...