Artikel ini berbagi beberapa metode JS yang lebih praktis yang telah saya kumpulkan dalam kehidupan sehari -hari untuk bimbingan dan evaluasi Anda. Saya ingin memperkenalkannya dalam artikel yang berbeda, tetapi saya merasa agak ekstra. Saya telah memilah metode tetapi saya tidak punya banyak cara untuk menunjukkannya. Tentu saja, beberapa dari mereka adalah metode yang saya lihat secara online yang menurut saya sangat praktis. Saya akan mempostingnya di sini untuk didiskusikan semua orang.
1. Klik untuk kembali jika tidak ada halaman sebelumnya, lalu lompat ke halaman yang ditentukan.
Pertama -tama, persyaratan kebutuhan pelanggan - satu halaman yang dibagikan kepada WeChat, klik untuk kembali ke beranda situs web.
Selama periode ini, fungsi ini telah dibahas dengan pelanggan. Bisakah Anda menambahkan tombol ke beranda untuk melompat ke halaman?
Namun, metode ini tidak dapat bekerja pada setiap halaman, dan itu menunjukkan bahwa halaman berbagi yang mengharuskan fungsi ini tidak memiliki ikon berikutnya, dan itu tidak mempengaruhi keindahan. Jadi, saya harus mencari babat. Anjing itu juga penuh dengan fungsi yang bermain bola tepi.
Jadi melalui usaha saya sendiri, saya memiliki kode berikut:
// Kembali ke halaman beranda tanpa halaman sebelumnya, kembali ke fungsi pushhistory () {// Dapatkan jumlah catatan dalam stack riwayat browser // karena halaman saat ini didorong ke tumpukan ketika halaman dimuat, itu menentukan apakah itu kurang dari 2 jika (history.length <2) {var state = {title: "index", url: getht (history. window.history.pushstate (state, "index", getHttpprefix + "index.html"); state = {title: "index", url: ""}; window.history.pushstate (state, "index", ""); }}Kemudian tambahkan kode berikut ke acara siap di halaman:
setTimeout (function () {pushhistory () window.addeventListener ("popstate", function (e) {5 if (window.history.state! = null && window.history.state.url! = "") {location.href = window.history.state.url}});Fungsi spesifiknya adalah untuk menentukan apakah ada halaman sebelumnya. Jika tidak, masukkan alamat tautan situs web ke dalam status (beranda digunakan di sini), dan kemudian dengarkan acara PopState untuk melakukan operasi fungsi yang sesuai.
Mungkin ada beberapa masalah kecil dengan kode ini, jadi saya berencana untuk mempostingnya dan seseorang dapat mendiskusikan dan memperbaikinya.
2. Metode logging yang nyaman
Saya percaya bahwa semua orang sudah bosan dengan Console.log () yang sedikit bertele -tele ketika men -debug halaman. Beberapa orang dapat menggunakan input pintasan untuk membuat input cepat (seperti input CL kompilasi lingkungan secara cerdas melompat keluar dari konsol). Namun, ketika proyek dirilis, masih akan sulit untuk dibersihkan. Jadi saya hanya menulis metode untuk menangani situasi ini secara khusus.
fungsi lll () {// variabel global _debug digunakan untuk mengontrol sakelar informasi debug jika (_debug) {var arr = []; // Argumen adalah set parameter metode. Ini dilakukan untuk tidak membatasi jumlah parameter, dan memfasilitasi debugging untuk (_Item dalam argumen) {// karena kebiasaan pribadi, informasi string ditampilkan dalam baris, string disaring dan disambung jika (typeof _item == "string") {arr.push (_item)} else {sonsole.log ") {arr.push (_item)} else {console.log") if (arr.length> 0) console.log (arr.join (','))}}Sebenarnya, saya sedikit tidak puas dengan bahwa saya tidak dapat secara otomatis mendapatkan nama parameter, jika tidak saya bisa menggunakannya seperti ini:
var a = 123, b = 333, obj = {name: "name", konten: "..."} lll (a, b, obj) // informasi debugging adalah: a: 123, b: 123 // obj: // {name: "name", konten: "..."}Apakah Anda sepertinya lebih mengerti?
3. Dapatkan informasi penentuan posisi browser (mendukung terminal seluler)
Banyak proyek yang saya terima adalah pengembangan khusus di ponsel, sehingga informasi yang mengharuskan lokasi saat ini akan ditemukan sering digunakan.
Namun, banyak antarmuka di internet perlu merujuk bagian JS eksternal, seperti API Baidu, API WeChat, dll.
Selanjutnya, saya akan memperkenalkan metode yang tidak memerlukan referensi ke JS eksternal, tetapi hanya perlu mengirimkan parameter ke tautan API eksternal untuk mendapatkan penentuan posisi:
if (getCookie ('position') == "") {if (navigator.useragent.indexof ("micromessenger")> -1) {// menilai apakah itu terminal weChat, tergantung pada situasinya, navigator.geolocation.getCurrentPosition (fungsi getPositionSucess (position) {/position {//getseRentPosition (function GetPositionSucess (position) {//{/getse.goTion Posisi (function GetPositionSucess (position) {/position) html5 (terminal seluler adalah yang paling akurat, PC akan memiliki deviasi besar) var lat = position.coords.latitude; // Dapatkan lintang saat ini var lng = position.coords.longitude; // Dapatkan longitude var saat ini arr = [] arr.push (lng) arr.push (lat) // peringatan) $. "http://api.map.baidu.com/geocoder/v2/?ak=om55dvwvwluu7shkz7Uy8m6e&callback=renderreverse&location=" + Lat + "," + lng + "& output = json & pois = 1",///lat lng + " Parameter beforeSend: function () {// Karena proses ini membutuhkan waktu, yang terbaik adalah memiliki prompt pemuatan pada halaman iosload () // animasi pemuatan halaman yang saya tulis}, data: {}, datatype: "jsonp", // karena ini adalah transmisi lintas-domain, itu diperlukan untuk mentransmisikan dalam bentuk jsonp Jonpc. Transmisi lintas-domain mengharuskan penerima dan pemancar untuk melakukan keberhasilan terpadu: fungsi (data) {ios.hide (); (error) {//alert(error.message);}, {})}}Kode ini adalah sepotong kode dalam proyek saya yang sebenarnya. Karena saya perlu menentukan apakah informasi penargetan telah diperoleh, saya tidak dapat memperolehnya sekali setiap kali halaman dimuat, jadi saya menyimpan informasi penargetan menggunakan cookie.
Pada awalnya, kami menentukan apakah ada cookie informasi penentuan posisi saat ini, tetapi tidak ada. Kemudian tentukan apakah itu di terminal seluler (karena proyek tersebut berasal dari terminal WeChat, saya baru saja melakukan verifikasi terminal WeChat di sini)
Kemudian hubungi parameter antarmuka yang disediakan oleh HTML5 untuk transmisi data, dan JSONP yang dikembalikan dari Baidu diproses. Karena proyek saya hanya perlu mendapatkan informasi kota lokasi, saya hanya memberikan contoh untuk mendapatkan kota.
4. Dapatkan bagian numerik dari string
Karena saya hanya bertanggung jawab atas implementasi fungsi pada proyek, saya tidak membangun banyak halaman sendiri, tetapi saya juga akan membuat beberapa situasi sulit di mana nilai -nilai dalam tag sulit diperoleh.
Misalnya:
<div> Harga asli 998 sekarang hanya <a> 99.8! </a> </div>
Untuk halaman seperti ini, kadang -kadang Anda perlu mendapatkan 998 atau 98 di dalamnya. Itu akan menjadi sedikit merepotkan.
Melalui metode yang saya berikan di bawah ini, situasi ini dapat dengan mudah dipecahkan
fungsi getNum (teks) {var value = text.replace (/[^(0-9).]/ig, ""); mengembalikan parsefloat (nilai); }Metode ini sangat singkat, dan pada dasarnya cocok dengan keteraturan. Ganti karakter yang non-nomor atau titik desimal dengan string kosong (sebenarnya dihapus)
Data yang dikembalikan dengan cara ini adalah nomor yang kami inginkan. Saya akhirnya mengonversinya ke operasi titik mengambang, yaitu untuk memfasilitasi pasca pemrosesan data. Misalnya, simpan dua tempat desimal, mengelilingi, dll.
5. Dapatkan informasi perangkat
//#region mendapatkan informasi perangkat var browser = {versi: function () {var u = navigator.useragent, app = navigator.appversion; return {trident: u.indexof ('trident')> -1, // yaitu kernel presto: u.indexof ('presto')> -1, // opera kernel webkit: u.indexof ('applewebkit')> -1, // apple dan google kernel gecko: u.indexof ('gecko' = google & /google kernel gecko: u.indexof ('gecko' = u u.1) -google u. -1, // firefox kernel seluler: !! u.match (/appleWebkit.*mobile.*/), // apakah itu terminal seluler ios: !! u.match (// (i [^;]+; (u;)? Cpu.+Mac OS X/), // terminal IOS dan croid: u.indexof ('dan cpu. // Terminal Android atau iphone browser UC: u.indexOf ('iPhone')> -1, // Apakah itu iPhone atau qqhd browser iPad: u.indexof ('iPad')> -1, // Apakah itu webapp iPad ') (' Safari ') == -1, // Apakah itu Webapp, di sana, micom,' safari ') == -1, // Apakah ini adalah sebuah program, di sana. -1, // Apakah itu wechat (baru ditambahkan pada 2015-01-22) qq: u.match (// sqq/i) == "qq" // apakah itu qq}; {// Kode yang dieksekusi untuk Apple dan Google Kernel ...} //#EndregionBerikut ini juga cara untuk menilai informasi perangkat yang saya tulis dan lihat di internet.
Saya pribadi berpikir itu sangat berguna, jadi saya akan membaginya dengan Anda.
Metode ekstensi string-berikut adalah metode untuk menambahkan data tipe string
1. Sembunyikan bagian dari string di luar panjang yang ditentukan
/*Tampilkan string pada panjang yang ditentukan, dan kelebihan ditampilkan dalam elips (len-show panjang defaultstr-stand string jika string kosong)*/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 hasil;}Komentarnya cukup sederhana. Jika Anda tidak mengerti, Anda dapat meninggalkan pesan, dan blogger akan membalas jika Anda melihatnya.
2. Kurangi panjang string dengan satu
// Kurangi satu panjang string.prototype.dellast = function () {return this.substring (0, this.length - 1)}Beberapa orang mungkin berpikir metode ini agak curiga melepas celana dan kentut mereka, tetapi pada kenyataannya, operasi ini sering diperlukan dalam proyek nyata.
Alih -alih menulis substring yang panjang, kita harus menulis metode untuk menyederhanakan kode, dan juga sangat nyaman untuk secara langsung mengklik string yang sesuai dan memilih Dellast saat mengkode kode.
Dalam satu kalimat, tidak apa -apa menggunakannya!
3. Lengkapi panjang string numerik yang ditentukan
// Panjang tetap untuk string numerik string.prototype.addzero = function (n) {var num = var len ini = num.toString (). Panjang; while (len <n) {num = '0' + num; len ++; } return num;}Anda mungkin tidak memahaminya saat membaca komentar. Bahkan, itu hanya menambahkan string ini ke "2". Metode ekstensi ini dapat digunakan dengan cara ini. Addzero (2)
Kemudian string yang dikembalikan adalah string seperti "02".
Semua mengatakan tidak apa -apa setelah menggunakannya!
4. Konversi tipe datetime database hingga saat ini
String.prototype.dtd = function () {return date baru (date.parse (this.toString (). Ganti (/-/g, "/")))}5. Nama panggilan pengguna dihilangkan
// Nama panggilan pengguna menghilangkan string.prototype.telhide = function () {var name = this return name.substr (0, 1) + "****" + name.substring (name.length - 1, name.length)}Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.