html网站建设showltems函数

发布时间:2014-7-29 3:49:34

html网站建设showltems函数

  showltems函数将所有记录合并成字符串,传给ID为items的HTML元素:
  functionshowlterns(){
  vars='〈h2〉'+localStorage.length+'Itemsforr+location.hostname+'〈/h2〉';s+=_〈ul〉’;variarray=getAHItems();
  for(Icini_array){varitem;i_array[k];variDate=newDate(item.ts);s+='〈li〉';s+='〈pclass=,,msg"〉,+item.msg+,〈/p〉,;s+='〈divclass=,,tooter,,〉,;s+=_〈pclass=,,i_date"〉,+iDate.toLocaleString();+’〈/p〉’;—Hitems).innerHTML=s+,〈/ul〉,;
  函数getA11Items()读取localStorage,将内容对象填充到i_array数组变量中、然后按日期排序并返回:
  functiongetAHItems(){
  vari一array=[1;
  for(vari=0;i〈localStorage.length;i++){try{varitem=DS0N.parse(localStorage.getItem(localStorage.key(i)));i一arraypush(item);
  1continue;//skipthisentry,novalid3SONdatai_arraysort(function(a^b){^returnb.ts-a.ts
  ;
  returniarray;
  loealStorage.getItem()函数从永久性内存中得到一个元素,通过函数JSON.parse将其转换为JavaScript对象——对象在保存时必须通过JSON.stringify转换为JSON字符串(见下面的代码清单)。为避免读到非JSON编码的内容导致脚本中止,宁波网站建设将JSON.parse语句放在txy/catch块中。对象通过i_array.push()M压入数末端,并在下一步中按时间排序。为了让JavaScript函数sort清楚排序标准,我们为其扩充一个匿名函数。变量ts包含了自0年1月1日以来经过的毫秒数——通过JavaScript函数newDateO.getTimeO生成的,用于为对象作临时排序。若匿名函数返回负数值,a被放在b后,若返回正数值,a则在b前。
  我们还需要解决如何创建及保存新记录的问题。办法是使用函数saveItem(),初始化一个局部变量d,并复制diaiyltem的结构:
  functionsaveltem(){vard=diaryltem;d.msg=$('note').value;if(d.msg=="){alert(Emptymessage");return;d.ts=newDate().getTime();d.id="geonotesH+d,ts;if(navigator.g[a-z]o[a-z]ocation){$('status').innerHTML*^spanstyle=Mcolor:redH〉'
  +'gettingcurrentposition/itemunsaved〈/span〉';navigator.geolocation.getCurrentPosition(function(pos){d.pos=pos.coords;localStoragesetIten(did^3SONstringify(d));$(*status';.innerHTML=*〈spanstyle="color:green"〉itemsaved.Position'
  +_is:'+pos.coords.latitude+'/+pos.coords.longitude+'〈/span〉';showItems();posError,{enableHighAccuracy:true,maximumAge:}
  );r}else{
  //alert("BrowserdoesnotsupportGeolocation'1);localStorage.setltem(d.id,DSON.stringify(d));$('status';.innerHTML="BrowserdoesnotsupportGeolocation/itemsaved.";showItems();}
  若文本字段为空(d.msg="),将显示相应对话框,并直接return以中止函数。否则,我们这条记录ID设为“g[a-z]o[a-z]oteS_”加上当前毫秒数的时间戳。如果同一个服务器上有多个应用程序访问丨ocalStorage,这个字符串前缀可以用来区分各自的数据。在成功定位后,坐标及相关元信息将被放到diaiyltem对象的pos变量中,并通过JSON.stringify()转换为JSON字符串保存到localStorage。
  在浏览器不支持GeolocaticmAPI的情况下,程序仍将保存文本,并提醒用户无法获得地理定位支持。最后调用的showItemsO保证了信息列表保持更新。
  浏览器支持
  如前所述,用来判断位置的函数提供了许多新特性,尤其是对于移动设备应用程序来说。在写下本文时,Apple系列产品(iPhone、iPad、iPod)及Android手机是最重要的移动平台。Google浏览器(基于Android平台)及Safari(用于Apple设备)都支持GeolocationAPI。
  桌面浏览器也为地理定位提供了良好支持。Safari及GoogleChrome从版本5开始都具备了必要功能,Firefox从版本就开始支持Geolocation,Opera自版本10开始也将此功能集成至它的浏览器。只有Mircrosoft目前仍无法在浏览器中支持任何类型的地理定位,不幸的是,它们的移动平台WindowsPhone7也是如此。
  本文由乐华网络编辑,转载请注明出处
  宁波网站建设www.leseo.net
上一篇:
datalist选项列表宁波网站建设一个令人期待已久的表单新功能是现在用户可以通过一个下拉菜单创建自
下一篇:
save()与restore()宁波网站建设的CanvasContext2D之旅已接近尾声,只剰下两
关于乐华
乐华介绍
乐华思维
人才招聘
使用条款
隐私保护
RSS订阅
网站地图
新闻动态
乐华观点
行业动态
频道介绍
服务介绍
案例展示
品牌研究
品牌理论
品牌体系
联系我们
400-680-2900
社会媒体
微信公众平台
微信公众平台