中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

一些實用性較高的js方法
來源:易賢網 閱讀:1463 次 日期:2016-07-08 10:02:07
溫馨提示:易賢網小編為您整理了“一些實用性較高的js方法”,方便廣大網友查閱!

這篇文章主要為大家分享了一些實用性較高的js方法,方便大家開發時使用,感興趣的小伙伴們可以參考一下

本文分享下自己平時積累的一些實用性較高的js方法,供大家指點和評價。本想分篇介紹,發現有點畫蛇添足。整理了下也沒多少拿得出手的方法,自然有一些是網上看到的個人覺得很有實用性的方法,在這里一起貼出來供大家探討。

1、點擊返回若沒有之前頁面則跳轉到規定頁面

首先是客戶需求中要求——單個分享到微信的頁面,點擊返回可以跳轉到網站首頁。

期間這個功能有和客戶探討過,能否在頁面中添加回到首頁按鈕進行跳轉。

可是這種方式無法作用到每個頁面,并且指明需要該功能的分享頁面沒有可以放得下一個圖標,又不影響美觀的地方了。于是,本人只好是尋求度娘。度娘上也盡是一些打著擦邊球的功能。

所以通過自己的嘗試 有了以下代碼:

//返回之前沒頁面則返回首頁

function pushHistory() {

  //獲取瀏覽器歷史記錄棧中的記錄個數

  //由于頁面加載的時候就會將當前頁面壓入棧中 所以判斷是否小于2

  if (history.length < 2) {

    var state = {

      title: "index",

      url: getHttpPrefix + "index.html"

    };

    window.history.pushState(state, "index", getHttpPrefix + "index.html");

    state = {

      title: "index",

      url: ""

    };

    window.history.pushState(state, "index", "");

  }

}

再將下面這段代碼加入頁面ready事件中:

setTimeout(function () {

    pushHistory()

    window.addEventListener("popstate", function (e) { 5       if (window.history.state !=null&&window.history.state.url != "") {

        location.href = window.history.state.url  

      }

    });

  }, 300);

具體功能就是判斷之前是否有頁面,若沒有就將制定網站的鏈接地址插入state(這里用的是首頁),然后再監聽popstate事件,進行相應功能的操作。

這段代碼可能還有一些小問題,所以打算是貼出來有人可以一起探討和完善。

2、便捷log方法

相信大家頁面調試的時候早已經厭煩了console.log()略顯啰嗦的敲打長度。有些人可能會使用快捷輸入進行快速輸入(如:輸入cl編譯環境智能跳出console)。不過在等到項目發布的時候 看到許多忘記刪掉的調試信息,還是會難以清除。所以本人干脆寫了個方法 用來專門處理這種情況。

function lll() {

  //全局變量_debug用來控制調試信息開關

  if (_debug) {

    var arr = [];

    //arguments是方法的參數集合 這樣做是為了不限制參數的個數,方便調試

    for (_item in arguments) {

      //由于個人習慣字符串信息就顯示在一行里所以對字符串進行了篩選拼接

      if (typeof _item == "String") {

        arr.push(_item)

      } else {

        console.log(_item)

      }

    }

    if(arr.length>0)console.log(arr.join(','))

  }

}

其實還有點不滿意的就是 沒辦法自動獲取到參數的名字不然就可以這樣使用:  

var a = 123, b = 333, obj = { name: "name", content: "..." }

 lll(a, b, obj)//調試信息為: a:123,b:123

        //obj:

        //{ name: "name", content: "..." }

看起來是不是就更加明白點了?

3、獲取瀏覽器定位信息(支持移動端)

接到很多的項目都是移動端定制開發的,所以經常會用到需要定位當前地點的信息。

可是網上很多的接口都是需要引用一段外部js的比如百度的api,微信的api等等。

我接下來介紹一種不需要引用外部js,只需要向外部API鏈接提交參數就可以獲取定位的方法:

if (getCookie('position') == "") {

    if (navigator.userAgent.indexOf("MicroMessenger") > -1) {//判斷是否是微信端,具體視情況而定

      navigator.geolocation.getCurrentPosition(function getPositionSuccess(position) {

        //通過html5的navigator.geolocation接口 獲取瀏覽器的當前定位 (移動端最準確,PC會有較大偏差)

        var lat = position.coords.latitude;//獲取過來的當前緯度

        var lng = position.coords.longitude;//獲取過來的當前經度

        var arr = []

        arr.push(lng)

        arr.push(lat)

        //alert(position)

        $.ajax({

          type: "GET",

          url: "http://api.map.baidu.com/geocoder/v2/?ak=oM55dVWVwLUU7shkz7uY8M6E&callback=renderReverse&location=" + lat + "," + lng + "&output=json&pois=1",//將經緯度通過地址欄參數的形式 傳給百度提供的api

          beforeSend: function () {

            //由于這段過程需要些時間 所以最好頁面上有加載提示

            iosload()//本人寫的頁面加載動畫

          },

          data: {},

          dataType: "jsonp",//由于是跨域傳輸 所以需要以jsonp的形式進行傳輸

          jsonpCallback: "renderReverse",//類似跨域傳輸的標識 需要接收方和傳輸方做好統一

          success: function (data) {

            ios.hide();

            //alert(data)

            $("#myposition").html("我在:" + data.result.addressComponent.city)

            setCookie("position", data.result.addressComponent.city, 24 * 60 * 30)

          }

        })

  }, function (error) {

    //alert(error.message);

  }, {})

  }

}

這段代碼是本人實際項目中的一段代碼,由于需要判斷是否已經獲取到定位信息,不能每次頁面加載都進行一次獲取 所以我用Cookie將定位信息保存了起來

剛開始的時候判斷是否有當前的定位信息cookie,沒有。再判斷是否是在移動端(因為項目是微信端的,所以我這里只是做了微信端的驗證)

然后再調用html5提供的接口參數 進行數據傳輸,將百度返回過來的jsonp進行處理。由于我項目里只需要獲取定位的城市信息 所以這里只是舉了獲取城市的例子。

4、獲取字符串數值部分

因為項目上我只負責功能的實現,所以很多頁面并不是我自己搭的,但是 又會有些生手來搭出一些很不好獲取標簽內的數值的情況。

比如:

<div>原價998現在只要

  <a>99.8!</a>

 </div>

像這種頁面,有時候要獲取里面的998或者98。就會變的有點麻煩。

通過我下面提供的方法,可以很方便的解決這種情況

function getNum(text) {

  var value = text.replace(/[^(0-9).]/ig, "");

  return parseFloat(value);

}

這段方法很簡短,實質上就是通過正則去匹配。將非數字或者小數點的字符替換成空的字符串(實際上就是刪除)

這樣返回過來的數據就是我們想要的數字,我最后又進行了一次轉換為浮點型的操作,這是為了方便將數據進行后期處理。比如保留兩位小數,四舍五入 等等。

5、獲取設備信息

//#region 獲取設備信息

var browser = {

  versions: function () {

    var u = navigator.userAgent, app = navigator.appVersion;

    return {

      trident: u.indexOf('Trident') > -1, //IE內核

      presto: u.indexOf('Presto') > -1, //opera內核

      webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內核

      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐內核

      mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端

      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端

      android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端或者uc瀏覽器

      iPhone: u.indexOf('iPhone') > -1, //是否為iPhone或者QQHD瀏覽器

      iPad: u.indexOf('iPad') > -1, //是否iPad

      webApp: u.indexOf('Safari') == -1, //是否web應該程序,沒有頭部與底部

      weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)

      qq: u.match(/\sQQ/i) == " qq" //是否QQ

    };

  }(),

  language: (navigator.browserLanguage || navigator.language).toLowerCase()

}

//實際使用的時候如下:

if (browser.versions.webKit) {

  //為蘋果 谷歌內核執行的代碼...

}

//#endregion

這里也是分享一個不是我寫的 也是在網上看到的一個封裝成對象的判斷設備信息的方式。

個人覺得很好用,于是也拿來跟大家分享一下。

字符串擴展方法——以下介紹的都是對String類型數據進行附加的方法

1.將字符串超出指定長度部分隱藏

/*

將字符串以指定長度顯示,多余部分以省略號顯示(len--顯示長度

defaultStr--若字符串為空顯示的字符串)

*/

String.prototype.splitString = function (len, defaultStr) {

  var result = "";

  var str = this.toString()

  if (str) {

    str = str.trim()

    if (str.length > len) {

      result = str.substring(0, len) + "...";

    }

    else {

      result = str;

    }

  }

  else {

    result = defaultStr;

  }

  return result;

}

注釋已經夠簡單明了了。不理解的可以留言,博主看到一定回復。

2.將字符串長度減一

//長度減一

 String.prototype.delLast = function () {

   return this.substring(0, this.length - 1)

 }

有些人可能會覺得 這個方法有點脫褲子放屁的嫌疑,其實真正的項目中 會經常需要這個操作。

與其寫一段長長的substring 不如咱們寫個方法將代碼精簡,并且在碼代碼的時候 也很方便 直接在對應的字符串后面 輕輕一點,選擇delLast就行。

一句話,用過都說好!

3.將數字型字符串補全指定長度

//給數字型字符串固定指定長度

String.prototype.addZero = function (n) {

  var num = this

  var len = num.toString().length;

  while (len < n) {

    num = '0' + num;

    len++;

  }

  return num;

}

看注釋可能有點不理解 其實就是加入這個字符串是 "2",通過這個擴展方法 可以這么操作 "2".addZero(2)

那么返回過來的就是"02"這樣的字符串。

用過都說好!

4.將數據庫DateTime類型轉換為Date

String.prototype.DTD = function () {

  return new Date(Date.parse(this.toString().replace(/-/g, "/")))

}

5.用戶昵稱省略 

//用戶昵稱省略

 String.prototype.telHide = function () {

   var name = this

   return name.substr(0, 1) + "****" + name.substring(name.length - 1, name.length)

 }

以上就是本文的全部內容,希望對大家的學習有所幫助。

更多信息請查看網絡編程
易賢網手機網站地址:一些實用性較高的js方法
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
一区二区三欧美| 欧美理论在线| 久久久国产一区二区三区| 国产精品一区在线观看你懂的| 亚洲精品免费在线观看| 欧美日韩一区三区| 亚洲一区二区三区视频| 国产亚洲亚洲| 欧美日韩国产小视频| 午夜免费日韩视频| 今天的高清视频免费播放成人| 看欧美日韩国产| 午夜国产不卡在线观看视频| 亚洲国产精品一区二区三区| 国产精品尤物福利片在线观看| 欧美大尺度在线| 久久中文字幕导航| 欧美一级二级三级蜜桃| 亚洲一区www| 亚洲日本电影| 91久久综合| 激情文学一区| 精久久久久久久久久久| 欧美ab在线视频| 久久久久成人精品| 欧美精品97| 欧美中文字幕不卡| 欧美一区二区三区在线| 午夜欧美精品| 久久aⅴ国产欧美74aaa| 欧美在线观看一二区| 久久精品国产久精国产思思| 亚洲一区二区视频在线观看| 亚洲影视在线| 久久午夜色播影院免费高清| 久久精品国产99精品国产亚洲性色| 欧美一区在线视频| 欧美第一黄色网| 欧美精品激情在线| 国产精品尤物| 亚洲国产一区二区精品专区| 在线亚洲免费| 久久婷婷av| 欧美日韩二区三区| 国产精品视频1区| 国产一区日韩二区欧美三区| 国模私拍视频一区| 亚洲高清影视| 欧美一区二区三区在线| 久久尤物视频| 红桃视频亚洲| 国产精品女主播一区二区三区| 亚洲高清一区二| 欧美一区二区三区四区在线观看地址 | 欧美日韩国产片| 国产偷国产偷精品高清尤物| 99精品免费网| 欧美高清在线| 亚洲国产美女久久久久| 国产精品久久一级| 欧美aaa级| 亚洲欧美春色| 欧美成人国产| 在线观看日产精品| 久久久久久9| 激情另类综合| 久久视频这里只有精品| 欧美亚洲成人网| 91久久午夜| 久久青草福利网站| 一区二区三区在线免费播放| 亚洲综合色视频| 国产精品久久久久久久久婷婷| 一区二区高清| 国产精品久久久久久久免费软件 | 亚洲午夜精品17c| 国产一区日韩一区| 久久精品午夜| 欧美三日本三级三级在线播放| 亚洲国产午夜| 欧美成人dvd在线视频| 亚洲少妇最新在线视频| 国产精品亚洲第一区在线暖暖韩国| 亚洲欧美日韩中文在线制服| 国产精品一区二区三区免费观看| 亚洲校园激情| 精品999成人| 欧美日韩高清在线| 99精品欧美一区二区蜜桃免费| 国产精品露脸自拍| 你懂的一区二区| 先锋影音久久久| 亚洲国产va精品久久久不卡综合| 欧美三级韩国三级日本三斤| 亚洲小说欧美另类社区| 在线播放中文一区| 国产美女精品一区二区三区| 欧美日韩亚洲免费| 久久九九99| 欧美一区二区三区视频免费播放| 在线中文字幕日韩| 亚洲视频在线看| 亚洲视频免费在线观看| 亚洲国产专区校园欧美| 亚洲国产成人91精品| 国产一区二区三区四区| 国产午夜精品在线| 亚洲国产一区二区三区高清| 亚洲免费激情| 亚洲制服欧美中文字幕中文字幕| 一区二区国产精品| 亚洲欧美精品| 久久夜色精品国产噜噜av| 久久蜜桃av一区精品变态类天堂| 性色一区二区| 欧美成熟视频| 国产日韩欧美另类| 亚洲黑丝在线| 午夜宅男欧美| 欧美日韩一区二区三区在线看 | 亚洲区第一页| 99精品福利视频| 久久美女性网| 欧美午夜剧场| 亚洲电影免费观看高清| 亚洲免费成人av| 性久久久久久久| 欧美日韩国产在线播放网站| 黑人一区二区三区四区五区| 亚洲精品在线免费| 久久久午夜视频| 国产午夜精品久久久久久免费视 | 国产亚洲精品久久飘花| 9人人澡人人爽人人精品| 久久综合伊人77777| 美女日韩在线中文字幕| 狂野欧美一区| 在线播放日韩| 欧美成人嫩草网站| 1024亚洲| 欧美啪啪成人vr| 日韩午夜在线| 欧美午夜精品久久久| aa成人免费视频| 欧美日韩精品在线播放| 一区二区三区www| 欧美日韩中文字幕在线视频| 亚洲毛片在线看| 国产欧美精品| 久久视频一区| 99精品国产一区二区青青牛奶| 欧美日本免费一区二区三区| 亚洲视频香蕉人妖| 国产亚洲日本欧美韩国| 久久婷婷国产综合精品青草| 亚洲黑丝在线| 国产麻豆午夜三级精品| 麻豆国产va免费精品高清在线| 99精品视频免费| 在线播放亚洲一区| 国产精品日产欧美久久久久| 久久久久久久久综合| 亚洲黑丝在线| 黑人一区二区| 久久大逼视频| 亚洲欧美三级在线| 樱桃国产成人精品视频| 国产美女精品| 国产精品www| 欧美日韩免费高清| 开心色5月久久精品| 午夜精品久久久久久久99樱桃| 在线电影国产精品| 国产欧美日韩免费看aⅴ视频| 欧美极品一区| 老牛影视一区二区三区| 亚洲欧美日韩一区在线观看| 亚洲日本va在线观看| 亚洲福利在线看| 亚洲大片在线| 曰韩精品一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 国内精品一区二区| 一区免费观看| 在线播放中文字幕一区| 红桃视频亚洲| 亚洲区免费影片| 一个色综合av| 亚洲一区二区三区四区中文| 亚洲香蕉在线观看| 欧美在线免费| 另类尿喷潮videofree| 美女视频网站黄色亚洲| 国产一区二区三区四区五区美女 | 国产日韩成人精品| 狠狠色丁香久久婷婷综合丁香| 亚洲高清在线视频| 亚洲一区二区三| 欧美大片免费久久精品三p| 欧美日韩国产91|