この記事では、あなたのガイダンスと評価のために私が日常生活に蓄積したより実用的なJSメソッドのいくつかを共有しています。さまざまな記事で紹介したいのですが、少し余分に見つけました。私は方法を整理しましたが、それを披露する方法はあまりありません。もちろん、それらのいくつかは私がオンラインで見た方法で、私が非常に実用的だと思う方法です。みんなが議論できるようにここに投稿します。
1. [前のページがない場合は[戻る]をクリックしてから、指定されたページにジャンプします。
まず第一に、顧客のニーズの要件 - WeChatと共有される単一ページ、クリックして戻ってWebサイトのホームページにジャンプします。
この期間中、この機能は顧客と議論されてきました。ホームページにボタンを追加してページにジャンプできますか?
ただし、このメソッドは各ページで動作することはできません。また、この関数を必要とする共有ページには次のアイコンがなく、美しさに影響しないことを示しています。だから、私は些細なことを探す必要がありました。犬には、エッジボールを演奏する機能もいっぱいです。
だから私自身の試みを通して、私は次のコードを持っています:
//前にページなしでホームページに戻る、function pushhistory(){//ブラウザ履歴スタックのレコードの数を取得しますwindow.history.pushstate(state、 "index"、gethttpprefix + "index.html"); state = {title: "index"、url: ""}; window.history.pushstate(state、 "index"、 ""); }}次に、ページ上のReadyイベントに次のコードを追加します。
setimeout(function(){pushhistory()window.addeventlistener( "popstate"、function(e){5 if(window.history.state!= null && window.history.state.url!= ""){location.href = window.history.state.url});};}、300);特定の機能は、以前にページがあったかどうかを判断することです。そうでない場合は、Webサイトのリンクアドレスを州に挿入し(ホームページはこちらに使用されています)、ポップス型イベントを聞いて対応する関数操作を実行します。
このコードにはいくつかの小さな問題があるかもしれないので、私はそれを投稿する予定で、誰かが一緒に議論し、改善することができます。
2。便利なロギング方法
ページをデバッグするとき、誰もがconsole.log()のわずかに冗長な長さにすでにうんざりしていると思います。一部の人々は、ショートカット入力を使用して迅速な入力(入力CLコンパイル環境など、コンソールからインテリジェントにジャンプするなど)を作成する場合があります。ただし、プロジェクトがリリースされた場合でも、クリアが困難になります。ですから、この状況に具体的に対処する方法を書いただけです。
function lll(){//グローバル変数_debugは、(_debug){var arr = []; //引数は、メソッドのパラメーターセットです。これは、パラメーターの数を制限せず、(引数の_item)のデバッグを容易にするために行われます{//文字列情報が行に表示されるため、文字列がフィルタリングされ、スプライスされている場合、(typeof _item == "string"){arr.push(_item)} if(arr.length> 0)console.log(arr.join( '、'))}}実際、私はパラメーターの名前を自動的に取得できないことに少し不満を感じています。そうしないと、次のように使用できます。
var a = 123、b = 333、obj = {name: "name"、content: "..."} lll(a、b、obj)//デバッグ情報は次のとおりです。もっと理解しているようですか?
3.ブラウザのポジショニング情報を取得します(モバイルターミナルをサポート)
私が受け取った多くのプロジェクトはモバイルでカスタマイズされた開発であるため、現在の場所を必要とする情報がよく使用されます。
ただし、インターネット上の多くのインターフェイスは、BaiduのAPI、WeChatのAPIなどの外部JSセクションを参照する必要があります。
次に、外部JSへの参照を必要としないが、ポジショニングを取得するために外部APIリンクにパラメーターを送信する必要がある方法を紹介します。
if(getCookie( 'position')== ""){if(navigator.useragent.indexof( "micromessenger")> -1){//状況に応じて、wechat端末であるかどうかを判断します。 HTML5(モバイル端子は最も正確で、PCは大きな偏差があります)var lat = position.coords.latitude; // "http://api.map.baidu.com/geocoder/v2/?ak=om55dvwvwluu7shkz7uy8m6e&callback=renderReverse&location =" + lat + "、" + lng + "&output = json&pois = 1 beforesend:function(){//このプロセスには時間がかかるので、ページioSload()//ページの読み込みアニメーションを書いたアニメーション}、データ:{}、datAtype: "jsonp"、//クロスドメイン伝送であるため、jsonp jsonp jsonp jsonp jsonp jsonp jsonp jsonp jsonp jsonp jsonpの形式での送信に必要です。統一された成功を行うために受信機と送信機が必要です:function(data){ios.hide(); //alert(error.message); {}}}このコードは、私の実際のプロジェクトのコードです。ターゲティング情報が取得されたかどうかを判断する必要があるため、ページがロードされるたびに1回取得できないため、Cookieを使用してターゲティング情報を保存しました。
最初は、現在のポジショニング情報Cookieがあるかどうかを判断しますが、存在しません。次に、それがモバイル端末にあるかどうかを判断します(プロジェクトはWeChat端末からのものであるため、ここでWeChat端末の検証をしました)
次に、データ送信のためにHTML5が提供するインターフェイスパラメーターを呼び出し、Baiduから返されたJSONPが処理されます。私のプロジェクトは場所の都市情報を入手するだけである必要があるため、都市を取得する例を挙げてください。
4.文字列の数値部分を取得します
私はプロジェクトでの機能の実装のみを担当しているため、自分で多くのページを構築することはできませんが、タグの値を取得するのが難しい困難な状況も作成します。
例えば:
<div> 998の元の価格は<a> 99.8!</a> </div>のみです
このようなページの場合、998または98を入手する必要がある場合があります。それは少し面倒になります。
以下に提供する方法を通して、この状況は簡単に解決できます
function getnum(text){var value = text.replace(/[^(0-9)。]/ig、 ""); parsefloat(value)を返します。 }この方法は非常に短く、基本的に規則性を通して一致しています。空の文字列に番号または小数点以外の文字を置き換えます(実際に削除されました)
この方法で返されるデータは、私たちが望む数です。最終的に、それを浮動小数点操作に変換しました。これは、データの後処理を促進するためです。たとえば、小数点以下の2つの場所を保持し、それらを丸くします。
5.デバイス情報を取得します
//#region Get Device Information var browser = {versions:function(){var u = navigator.useragent、app = navigator.appversion; return {trident:u.indexof( 'trident')> -1、// ie kernel presto:u.indexof( 'presto')> -1、// opera kernel webkit:u.indexof( 'applewebkit') -1、// Firefox Kernel Mobile:!! U.Match(/AppleWebkit.*Mobile。*/)、// Mobile Terminal iOS:!! U.Match(//(i [^;]+;(u;)?cpu。+Mac OS X/)、// iOS末端Android:U.indexof( 'android') // AndroidターミナルまたはUCブラウザiPhone:U.Indexof( 'iPhone')> -1、// // IT ISPHOND BROWSER IPAD:U.INDEXOF( 'iPad')> -1、// iPad WebApp:U.Indexof( 'Safari')== -1、// U.indexof( 'microMessenger')> -1、//それがwechatであるかどうか(2015-01-22に新たに追加) (browser.versions.webkit){// AppleとGoogle Kernelで実行されたコード...} //#endregionまた、インターネットで書いて見たデバイス情報を判断する方法もあります。
個人的にはとても便利だと思うので、あなたと共有します。
文字列拡張方法 - 以下は、文字列タイプデータを追加する方法です
1。指定された長さを超えて文字列の部分を非表示にします
/*指定された長さで文字列を表示すると、余分なものがellipses(len - show length defaultstr--文字列が空の場合はスタンド文字列)に表示されます。 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。文字列の長さを1つずつ減算します
// 1つの長さのstring.prototype.dellast = function(){this.substring(0、this.length -1)}を減算します}一部の人々は、この方法がズボンを脱いだりおなしすることを少し疑っていると思うかもしれませんが、実際、この操作は実際のプロジェクトでしばしば必要です。
長いサブストリングを書く代わりに、コードを簡素化する方法を記述する必要があります。また、コードをコーディングするときに対応する文字列を直接クリックして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」に追加するだけです。この拡張法は、この方法で使用できます。 addzero(2)
次に、返された文字列は「02」のような文字列です。
全員がそれを使用した後は大丈夫だと言っています!
4.データベースのデータタイプタイプを現在まで変換します
string.prototype.dtd = function(){return new date(date.parse(this.tostring()。置換(/ - /g、 "/"))}5。ユーザーのニックネームは省略されています
//ユーザーのニックネームはstring.prototype.telhide = function(){var name = this return name.substr(0、1) + "****" + name.substring(name.length -1、name.length)}}}}}を省略します。上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。