Cet article partage certaines des méthodes JS les plus pratiques que j'ai accumulées dans la vie quotidienne pour vos conseils et votre évaluation. Je veux le présenter dans différents articles, mais je l'ai trouvé un peu plus. J'ai trié les méthodes, mais je n'ai pas plusieurs façons de le montrer. Bien sûr, certaines d'entre elles sont des méthodes que j'ai vues en ligne qui, je pense, sont très pratiques. Je les publierai ici pour que tout le monde puisse en discuter.
1. Cliquez pour retourner s'il n'y a pas de page précédente, puis passez à la page spécifiée.
Tout d'abord, les exigences des besoins du client - une seule page partagée vers WeChat, cliquez pour revenir pour sauter sur la page d'accueil du site Web.
Au cours de cette période, cette fonction a été discutée avec les clients. Pouvez-vous ajouter le bouton à la page d'accueil pour sauter sur la page?
Cependant, cette méthode ne peut pas fonctionner sur chaque page, et elle indique que la page de partage qui nécessite cette fonction n'a pas l'icône suivante, et elle n'affecte pas la beauté. Donc, j'ai dû chercher des tripes. Le chien est également plein de fonctions qui jouent des boules de bord.
Donc, grâce à ma propre tentative, j'ai le code suivant:
// Retournez à la page d'accueil sans page avant, retournez à la fonction pushhistory () {// Obtenez le nombre d'enregistrements dans la pile d'historique du navigateur // Parce que la page actuelle est poussée dans la pile lorsque la page est chargée, il détermine s'il est inférieur à 2 if (History.length <2) {var State = {Title: "index", url: gethtpprefix + "index.html". window.history.pushstate (état, "index", gethttpprefix + "index.html"); state = {title: "index", url: ""}; window.history.pushstate (état, "index", ""); }}Ajoutez ensuite le code suivant à l'événement prêt sur la page:
setTimeout (function () {pushhistory () window.addeventListener ("popstate", fonction (e) {5 if (window.history.state! = null && window.history.state.url! = "") {emplacement.href = window.history.state.url}});}, 300);La fonction spécifique consiste à déterminer s'il y avait une page auparavant. Sinon, insérez l'adresse du lien du site Web dans l'état (la page d'accueil est utilisée ici), puis écoutez l'événement PopState pour effectuer l'opération de fonction correspondante.
Il peut y avoir des problèmes mineurs avec ce code, donc je prévois de le publier et quelqu'un peut discuter et l'améliorer ensemble.
2. Méthode de journalisation pratique
Je crois que tout le monde est déjà fatigué de la longueur légèrement verbeux de Console.log () lors de la débogage de la page. Certaines personnes peuvent utiliser des entrées de raccourci pour effectuer des entrées rapides (telles que l'environnement de compilation CL des entrées sauter intelligemment hors de la console). Cependant, lorsque le projet sera publié, il sera toujours difficile à effacer. J'ai donc simplement écrit une méthode pour gérer cette situation spécifiquement.
Fonction lll () {// La variable globale _debug est utilisée pour contrôler le commutateur d'information de débogage if (_debug) {var arr = []; // Les arguments sont l'ensemble de paramètres des méthodes. Ceci est fait pour ne pas limiter le nombre de paramètres et faciliter le débogage pour (_item dans les arguments) {// Parce que les habitudes personnelles que les informations de chaîne s'affichent dans une ligne, la chaîne est filtrée et épissée if (typeof _item == if (arr.length> 0) console.log (arr.join (','))}}En fait, je suis un peu insatisfait de ce que je ne peux pas obtenir automatiquement le nom du paramètre, sinon je peux l'utiliser comme ceci:
var a = 123, b = 333, obj = {name: "name", contenu: "..."} lll (a, b, obj) // Les informations de débogage sont: a: 123, b: 123 // obj: // {name: "name", contenu: "..."}Semblez-vous en savoir plus?
3. Obtenez les informations de positionnement du navigateur (prend en charge le terminal mobile)
De nombreux projets que j'ai reçus sont un développement personnalisé sur mobile, donc les informations qui nécessitent la localisation actuelle sont souvent utilisées.
Cependant, de nombreuses interfaces sur Internet doivent faire référence à une section JS externe, comme l'API de Baidu, l'API de WeChat, etc.
Ensuite, je présenterai une méthode qui ne nécessite pas de référence à JS externe, mais n'a besoin que de soumettre des paramètres aux liaisons API externes pour obtenir le positionnement:
if (getcookie ('position') == "") {if (navigator.useragent.indexof ("Micromessenger")> -1) {// jugez s'il s'agit d'un terminal WeChat, en fonction de la situation, Navigator.Geolocation.getCurrentPosition (Fonction GetPossionSucture. html5 (le terminal mobile est le plus précis, le PC aura un grand écart) var lat = position "http://api.map.baidu.com/geocoder/v2/?ak=om55dvwvwluu7shkz7uy8m6e&callback=renderReverse&Location=" + lat + "," + lng + "& output = JSON & Pois = 1", // PASSET beforesend: function () {// Puisque ce processus prend un certain temps, il est préférable d'avoir une invite de chargement sur la page iOSLoad () // l'animation de chargement de page que j'ai écrite}, données: {}, type de données: "JSONP", // Puisque il s'agit d'un transmission croisée-domaine, il est nécessaire de transmettre sous forme de JSONP jsonp La transmission nécessite que le récepteur et l'émetteur fassent un succès unifié: fonction (données) {iOS.Hide (); {//alelert(Error.Message);Ce code est un morceau de code dans mon projet réel. Comme je dois déterminer si les informations de ciblage ont été obtenues, je ne peux pas l'obtenir une fois à chaque fois que la page est chargée, j'ai donc enregistré les informations de ciblage à l'aide de cookies.
Au début, nous déterminons s'il y a un cookie d'informations de positionnement actuel, mais il n'y en a pas. Déterminez ensuite s'il est sur le terminal mobile (parce que le projet provient du terminal WeChat, je viens de faire la vérification du terminal WeChat ici)
Ensuite, appelez les paramètres d'interface fournis par HTML5 pour la transmission de données, et le JSONP renvoyé de Baidu est traité. Étant donné que mon projet n'a qu'à obtenir les informations de la ville de localisation, je donne juste un exemple d'obtention des villes.
4. Obtenez la partie numérique de la chaîne
Parce que je ne suis responsable que de la mise en œuvre des fonctions sur le projet, je ne construis pas moi-même de nombreuses pages, mais je vais également créer des situations difficiles dans lesquelles les valeurs de la balise sont difficiles à obtenir.
Par exemple:
<div> Le prix d'origine de 998 est maintenant seulement <a> 99.8! </a> </div>
Pour des pages comme celle-ci, vous devez parfois y obtenir 998 ou 98. Cela deviendra un peu gênant.
Grâce à la méthode que je fournis ci-dessous, cette situation peut être facilement résolue
fonction getnum (text) {var valeur = text.replace (/ [^ (0-9).] / ig, ""); return parsefloat (valeur); }Cette méthode est très courte et correspond essentiellement à la régularité. Remplacez les caractères non nugrés ou décimaux par des chaînes vides (en fait supprimées)
Les données renvoyées de cette manière sont le nombre que nous voulons. Je l'ai finalement converti en une opération de point flottante, qui doit faciliter le post-traitement des données. Par exemple, gardez deux décimales, autour d'eux, etc.
5. Obtenir des informations sur l'appareil
// # Région Get Device Informations 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, // Apple et Google Kernel Gecko: U.Indexof ('GECKO')> -1 && u.index ('kht -1, // Firefox Kernel Mobile: !! U.Match (/AppleWebkit.*Mobile. * /), // est-ce un terminal mobile iOS: !! U.Match (// (i [^;] +; (u;)? Cpu. + Mac OS X /), // iOS Terminal Android: U.Indexof ('Android')> -1 || // Terminal Android ou UC Browser iPhone: U.Indexof ('iPhone')> -1, // est-ce un iPhone ou QQHD Browser iPad: U.Indexof ('iPad')> -1, // est-ce un iPad WebApp: U.Indexof ('Safari') == -1, // Le Web devrait être un programme, il n'y a pas -1, // si c'est WeChat (nouvellement ajouté le 2015-01-22) QQ: U.Match (// SQQ / I) == "QQ" // Il est QQ}; // Code exécuté pour Apple et Google Kernel ...} // # EndregionVoici également un moyen de juger des informations sur les appareils que j'ai écrites et vues sur Internet.
Je pense personnellement que c'est très utile, donc je vais le partager avec vous.
Méthode d'extension de chaîne - les éléments suivants sont des méthodes pour ajouter les données de type de chaîne
1. Masquer la partie de la chaîne au-delà de la longueur spécifiée
/ * Affichez la chaîne à une longueur spécifiée, et l'excès s'affiche dans les ellipses (Len - Longueur de la longueur defaultstr - string si la chaîne est vide) * / 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; } Retour Résultat;}Les commentaires sont assez simples. Si vous ne comprenez pas, vous pouvez laisser un message et le blogueur répondra si vous le voyez.
2. Soustrayez la longueur de la chaîne par une
// soustrait une longueur string.prototype.dellast = function () {return this.substring (0, this.length - 1)}Certaines personnes peuvent penser que cette méthode est un peu méfiante de retirer leur pantalon et de péter, mais en fait, cette opération est souvent nécessaire dans de vrais projets.
Au lieu d'écrire une longue sous-chaîne, nous devons écrire une méthode pour simplifier le code, et il est également très pratique de cliquer directement sur la chaîne correspondante et de sélectionner Dellast lors du codage du code.
Dans une phrase, c'est OK de l'utiliser!
3. Complétez la longueur spécifiée de la chaîne numérique
// Longueur fixe pour les chaînes numériques String.prototype.addzero = fonction (n) {var num = this var len = num.toString (). while (len <n) {num = '0' + num; len ++; } retour num;}Vous pouvez ne pas le comprendre lorsque vous lisez les commentaires. En fait, il suffit d'ajouter cette chaîne à "2". Cette méthode d'extension peut être utilisée de cette manière. addzero (2)
Ensuite, la chaîne retournée est une chaîne comme "02".
Tous ont dit que c'était OK après l'avoir utilisé!
4. Convertir le type de Database Datetime à ce jour
String.prototype.dtd = function () {return new Date (date.parse (this.toString (). Remplace (/ - / g, "/")))}5. surnom de l'utilisateur omis
// Le surnom de l'utilisateur omet string.prototype.telHide = function () {var name = this return name.substr (0, 1) + "****" + name.substring (name.length - 1, name.length)}}Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.