在开发移动网站过程中,有一些Javascript代码会经常用到。以下是10段常用的JavaScript代码。需要注意的是某几段代码需要jQuery mobile framework支持。

1.如果网页是在iPhone或Android浏览器中查看,则在主体元素中添加“iPhone”或“Android” 类名

Javascript代码
  1. if (navigator.userAgent.match(/iPhone/i)) {
  2. $('body').addClass('iPhone');
  3. } else if (navigator.userAgent.match(/Android/i)) {
  4. $('body').addClass('Android');
  5. }

iPhone用户浏览示例:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3
Mozilla/5.0 (iPhone; U; XXXXX like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A477d Safari/419.3

Android用户浏览示例:

Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17

2. 移除浏览器地址栏

Javascript代码
  1. window.scrollTo(0, 1);

3. 防止网页触摸滚动

Javascript代码
  1. notouchmove = function(event) {
  2. event.preventDefault();
  3. }
  4. <div data-role="page" id="home" ontouchmove="notouchmove(event);">
  5. ...
  6. </div>

4. 当横向浏览时显示信息

Javascript代码
  1. var updateorientation = function (){
  2. var classname = '',
  3. top = 100;
  4. switch(window.orientation){
  5. case 0:
  6. classname += "normal";
  7. break;
  8. case -90:
  9. classname += "landscape";
  10. break;
  11. case 90:
  12. classname += "landscape";
  13. break;
  14. }
  15. if (classname == 'landscape') {
  16. if ($('#overlay').length === 0) {
  17. window.scrollTo(0, 1);
  18. $('body').append('<div id="overlay" style="width: 100%; height:' + $(document).height() + 'px"><span style="top: ' + top + 'px">Landscape view is not supported for this page.</span></div>');
  19. }
  20. } else {
  21. $('#overlay').remove();
  22. }
  23. };
  24. Usage:
  25. var supportsOrientationChange = "onorientationchange" in window,
  26. orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
  27. window.addEventListener(orientationEvent, function() {
  28. updateorientation();
  29. }, false);

5.显示部分描述信息,当点击时显示完整信息

Javascript代码
  1. var truncatedesc = function(trunc, len) {
  2. if (trunc) {
  3. var org = trunc;
  4. if (trunc.length > len) {
  5. trunc = trunc.substring(0, len);
  6. trunc = trunc.replace(/w+$/, '');
  7. trunc = '<span class="truncated">' + trunc;
  8. trunc += '<strong class="more-description">...</strong></span>';
  9. trunc += '<span class="original" style="display: none;">' + org + '</span>';
  10. }
  11. $('.truncated').live("touchstart touchend", function() {
  12. $(this).closest('div').find('.original').show();
  13. $(this).closest('div').find('.truncated').hide();
  14. return false;
  15. });
  16. return trunc;
  17. }
  18. };
  19. Usage:
  20. truncatedesc(item.description, 100);

6. 收到成功的Ajax请求时,重定向到另一个页面(jQuery mobile)

Javascript代码
  1. var ajaxurl = ‘http://…’; // Your web service URL
  2. $.ajax({
  3. url: ajaxurl,
  4. type: 'GET',
  5. processData: false,
  6. contentType: "application/json",
  7. dataType: "jsonp",
  8. success: function(data) {
  9. $.mobile.changePage("results.html");
  10. },
  11. error: function() {
  12. alert('Error!');
  13. }
  14. });

7. 从列表视图的链接中删除活动状态(jQuery mobile)

Javascript代码
  1. $('div').live('pageshow', function (event, ui) {
  2. $('[data-role=listview] li').removeClass("ui-btn-active");
  3. });

8. 从下拉选择中禁用默认的jQuery mobile样式(jQuery mobile)

Javascript代码
  1. $(document).bind("mobileinit", function(){
  2. $.mobile.page.prototype.options.keepNative = "select";
  3. });

9. 动态更新列表视图(jQuery mobile)

Javascript代码
  1. var output  = '<li><img src="' + item.image + '" alt="' + item.title + '" />';
  2. output += '<h3><a href="' + item.url + '">' + item.title + '</a></h3>';
  3. output += '</li>';
  4. $('#mylistul').append(output).listview('refresh');

10. 动态添加表单输入和应用默认样式(jQuery mobile)

Javascript代码
  1. var html = '<input type="search" name="suburb" id="suburb" placeholder="Enter suburb" />';
  2. $('#searchform').append(html);
  3. $('#suburb').textinput();

推荐书籍

下面两本关于HTML5和jQuery的书将有助于你理解和使用jQuery mobile框架。


HTML5: Up and Running

jQuery: Novice to Ninja

移动网站开发中常用的10段JavaScript代码相关推荐

  1. php页面开发,PHP网站开发中常用的8个小技巧

    这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下 PHP是一种用于创建动态 ...

  2. php开发中常用函数总结,PHP开发中常用函数总结

    PHP开发中常用函数总结 发布于 2014-10-31 08:34:03 | 48 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Preproc ...

  3. iOS开发中常用的方法

    iOS开发中常用的方法 系统弹窗: 过期方法: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"确认报价" ...

  4. 前端开发中常用设计模式-总结篇

    本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...

  5. WordPress开发中常用代码(必备)

    很多人在WordPress开发中常用代码,WordPress 相比其它网站程序,最突出的优势:主题模板多,插件多,相关技术文章多,只要你想到的功能,都可以通过插件或者代码实现.现在分享下WordPre ...

  6. jsp/html开发中常用的JS代码和页面特效代码

    1.jsp/html开发中常用的JS代码 1.后退 前进 <input type="button" value="后退" onClick="hi ...

  7. php利用文件做数据储存,PHP_PHP文件读写操作之文件写入代码,在PHP网站开发中,存储数据通 - phpStudy...

    PHP文件读写操作之文件写入代码 在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势, ...

  8. 前端开发中常用图片格式

    前端开发中常用图片格式 在我们的日常开发中.必不可少会使用很多种图片. 我们需要根据业务场景来选择所使用的图片类型. 这里我整理了一些常用图片类型.他们的优缺点以及建议的使用场景. 如何在计算机中显示 ...

  9. python web开发第三方库_Python Web开发中常用的第三方库

    Python Web开发中常用的第三方库 TL;DR 经常有朋友问,如果用Python来做Web开发,该选用什么框架?用 Pyramid 开发Web该选用怎样的组合等问题?在这里我将介绍一些Pytho ...

最新文章

  1. 3D Object Detection——BEV-based methods
  2. 008_Spring Data JPA原生SQL
  3. 删除svn_推荐:mac上svn常用命令及好用的工具
  4. Apache整合Tomcat
  5. 03Linux用户和组及权限
  6. 饥荒联机云服务器_GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
  7. 现浇板弹性计算还是塑性计算_双向板按弹性方法还是按塑性方法计算
  8. Unity3D中MonoDevelop无法使用
  9. 做鼻子测试软件,深度解析鼻子类型,测试你属于哪种鼻子?
  10. 打印图像模糊问题解决方法
  11. 诸神之战 | 赛事升级,4.1亿元奖金纳入浙江赛区奖项权益
  12. python列表添加_Python-如何为列表添加元素
  13. AJ-Report 数据源、数据集用法总结
  14. 科技周刊第七期:关于熟练程度的等级
  15. Android-自定义圆形ProgressBar加载
  16. 某电批锁付一颗螺丝的原理分析
  17. c语言重修,C语言重修班复习.ppt
  18. MATLAB 模型自动化测试
  19. android ios 相册图片多选,iOS实现相册多选图片上传功能
  20. CMMI流程规范-外包与采购管理

热门文章

  1. html游戏键盘控制,键盘控制方块移动.html
  2. 第十六届全国大学生智能车竞赛全部比赛胜利结束了
  3. 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序
  4. 基于NanoVNA调整150kHz``选频``放大电路
  5. 2021年春季学期-信号与系统-第七次作业参考答案-第七小题
  6. 对于ESP8266-340模块改成MicroPytyhon模块
  7. Jquery中获取select选中的文本与值
  8. python随机产生10个不同的两位数_python解决两位数加减法快速出题问题
  9. python 文件格式转换_Python的处理数据,如何进行数据转换,学会三种方式
  10. 非抢占式优先算法例题_非抢占式高优先级调度算法