Este artículo comparte algunos de los métodos JS más prácticos que he acumulado en la vida diaria para su orientación y evaluación. Quiero presentarlo en diferentes artículos, pero lo encontré un poco extra. He resuelto los métodos, pero no tengo muchas formas de mostrarlos. Por supuesto, algunos de ellos son métodos que vi en línea que creo que son muy prácticos. Los publicaré aquí para que todos discutan.
1. Haga clic para devolver si no hay página anterior, luego salte a la página especificada.
En primer lugar, los requisitos de las necesidades del cliente: una sola página compartida en WeChat, haga clic para regresar para saltar a la página de inicio del sitio web.
Durante este período, esta función se ha discutido con los clientes. ¿Puede agregar el botón a la página de inicio para saltar a la página?
Sin embargo, este método no puede funcionar en cada página, e indica que la página de intercambio que requiere esta función no tiene el siguiente icono, y no afecta la belleza. Entonces, tuve que buscar una tripa. El perro también está lleno de funciones que juegan bolas de borde.
Entonces, a través de mi propio intento, tengo el siguiente código:
// Regrese a la página de inicio sin una página antes, regrese a la función PushHistory () {// Obtenga el número de registros en la pila del historial del navegador // porque la página actual se presiona en la pila cuando la página está cargada, determina si es menos de 2 if (History.LIngth <2) {var State = {Título: "índice", url: gethttppPrefix + "Índice.html"; Window.history.pushState (estado, "índice", gethttpprefix + "index.html"); estado = {título: "índice", url: ""}; window.history.pushstate (estado, "índice", ""); }}Luego agregue el siguiente código al evento listo en la página:
setTimeOut (function () {pushHistory () window.adDeventListener ("popState", function (e) {5 if (window.history.state! = null && window.history.state.url! = "") {ubicación.href = window.history.state.url});}, 300);La función específica es determinar si había una página antes. Si no, inserte la dirección de enlace del sitio web en el estado (la página de inicio se usa aquí) y luego escuche el evento PopState para realizar la operación de función correspondiente.
Puede haber algunos problemas menores con este código, por lo que planeo publicarlo y alguien puede discutirlo y mejorarlo juntos.
2. Método de registro conveniente
Creo que todos ya están cansados de la longitud ligeramente detallada de consola.log () al depurar la página. Algunas personas pueden usar entradas de acceso directo para hacer entradas rápidas (como el entorno de compilación de CL de entrada, salta de consola de manera inteligente). Sin embargo, cuando se lance el proyecto, aún será difícil de despejar. Así que simplemente escribí un método para lidiar con esta situación específicamente.
function lll () {// Global Variable _Debug se usa para controlar el conmutador de información de depuración if (_debug) {var arr = []; // Los argumentos son el conjunto de parámetros de métodos. Esto se hace para no limitar el número de parámetros, y facilitar la depuración para (_item en argumentos) {// porque los hábitos personales que la información de la cadena se muestra en una línea, la cadena se filtra y empaliza si (typeof _item == "cadena") {arr.push (_item)} else {console.log (_item)}}}}}}}} if (arr.length> 0) console.log (arr.join (','))}}En realidad, estoy un poco insatisfecho con eso, no puedo obtener automáticamente el nombre del parámetro, de lo contrario puedo usarlo así:
var a = 123, b = 333, obj = {nombre: "nombre", contenido: "..."} lll (a, b, obj) // La información de depuración es: a: 123, b: 123 // obj: // {nombre: "nombre", contenido: "..."}¿Parece que entiendes más?
3. Obtenga información de posicionamiento del navegador (admite la terminal móvil)
Muchos proyectos que he recibido son desarrollo personalizado en dispositivos móviles, por lo que a menudo se usa información que requiere que se ubique la ubicación actual.
Sin embargo, muchas interfaces en Internet deben hacer referencia a una sección JS externa, como la API de Baidu, la API de WeChat, etc.
A continuación, presentaré un método que no requiere referencia a JS externo, pero solo necesita enviar parámetros a enlaces API externos para obtener el posicionamiento:
if (getcookie ('posición') == "") {if (navigator.useragent.indexof ("micromessenger")> -1) {// juzga si es un terminal de wechat, dependiendo de la situación, navigator.geolocation.getCurrentposition (function seppositionsuccess (posicion) {// obtiene el posicionamiento actual del browser de la marina. html5 (el terminal móvil es el más preciso, la PC tendrá una gran desviación) var lat = posicion.coords.latitude; // Obtenga la latitud actual var lng = posicion.coords.longitude; // Obtenga la longitud actual var arr = [] arr.push (lng) arr.push (lat) // alerta (position) $ .ajax ({type: "get", orl ", url). "http://api.map.baidu.com/geocoder/v2/?ak=om55DVWVWLUU7SHKZ7UY8M6E&CALLBACK=RENDERREVERSE&location=" + Lat + "," + lng + "& output = json & pois = 1", // befeforesend: function () {// Dado que este proceso lleva algún tiempo, es mejor tener un mensaje de carga en la página iOSLoad () // La animación de carga de la página que escribí}, datos: {}, DataType: "JSONP", // Dado que es una transmisión de Dominio cruzado, es necesario transmitir en el formulario de JSONP JSONPCALBack: "RenderReverse",//Cross Domain es necesario para transmitir en el formulario de JSONP JSONPCALBack: "RenderReverse",////////////////////Domano dura La transmisión requiere que el receptor y el transmisor hagan un éxito unificado: function (data) {ios.hide (); (error) {//alert(error.message);Este código es un código en mi proyecto real. Dado que necesito determinar si se ha obtenido la información de orientación, no puedo obtenerla una vez cada vez que se carga la página, por lo que guardé la información de orientación utilizando cookies.
Al principio, determinamos si hay una cookie actual de información de posicionamiento, pero no hay. Luego determine si está en el terminal móvil (porque el proyecto es de la terminal WeChat, solo hice la verificación del terminal WeChat aquí)
Luego llame a los parámetros de la interfaz proporcionados por HTML5 para la transmisión de datos, y se procesa el JSONP desde Baidu. Dado que mi proyecto solo necesita obtener la información de la ciudad de ubicación, solo doy un ejemplo de las ciudades.
4. Obtenga la parte numérica de la cuerda
Debido a que solo soy responsable de la implementación de funciones en el proyecto, no construyo muchas páginas, pero también crearé algunas situaciones difíciles en las que los valores en la etiqueta son difíciles de obtener.
Por ejemplo:
<Div> El precio original de 998 ahora es solo <a> 99.8! </a> </div>
Para páginas como esta, a veces necesita obtener 998 o 98. Se volverá un poco problemático.
A través del método que proporciono a continuación, esta situación se puede resolver fácilmente
función getNum (text) {var value = text.replace (/[^(0-9).]/ig, ""); return parsefloat (valor); }Este método es muy corto y esencialmente coincide con la regularidad. Reemplace los caracteres que no son puntos decimales con cuerdas vacías (realmente eliminadas)
Los datos devueltos de esta manera son el número que queremos. Finalmente lo convertí en una operación de punto flotante, que es facilitar el procesamiento posterior de los datos. Por ejemplo, mantenga dos decimales, rodeos, etc.
5. Obtenga información del dispositivo
//#región Get Information del dispositivo VAR BROWSER = {versiones: function () {var u = navigator.useragent, app = navigator.appversion; return {trident: u.indexof ('trident')> -1, // ie kernel presto: u.indexof ('presto')> -1, // ópera kernel webkit: u.indexof ('applewebkit')> -1, // apple y google kernel gecko: u.indexof ('gecko') u.indexof ('khtml') == -1, // firefox kernel mobile: !! u.match (/appleWebkit.*Mobile.*/), // es un terminal móvil iOS: !! u.match (// (i [^;]+; (u;)? Cpu.+Mac OS X/), // iOS Terminal android: UNDOX (UNDOUR ('). || u.indexof ('linux')> -1, // Android Terminal o UC Browser iPhone: U.indexof ('iPhone')> -1, // ¿Es un iPhone o Qqhd Browser iPad? Header and Bottom Weixin: U.IndexOf ('Micromessenger')> -1, // si es WeChat (recientemente agregado en 2015-01-22) QQ: U.Match (// sqq/i) == "Qq" // si es QQ} (), Idioma: (navegator.BrowserLanguage || Navigator.Language). El uso real es el siguiente: if (browser.versions.webkit) {// código ejecutado para Apple y Google Kernel ...} //#endregionAquí también hay una forma de juzgar la información del dispositivo que escribí y vi en Internet.
Personalmente creo que es muy útil, así que lo compartiré contigo.
Método de extensión de cadena: los siguientes son métodos para agregar datos de tipo de cadena
1. Ocultar la parte de la cadena más allá de la longitud especificada
/*Muestre la cadena a una longitud especificada, y el exceso se muestra en elipses (len-longitud de longitud de longitud de default-Cadena de pisos Si la cadena está vacía)*/string.prototype.splitString = function (len, defaultstr) {var resultado = ""; var str = this.ToString () if (str) {str = str.tr.trim () if (str.length> len) {result = str.substring (0, len) + "..."; } else {resultado = str; }} else {resultado = defaultStr; } resultado de retorno;}Los comentarios son bastante simples. Si no comprende, puede dejar un mensaje y el blogger responderá si lo ve.
2. Resta la longitud de la cadena por uno
// reste una longitud String.prototype.dellast = function () {return this.substring (0, this.length - 1)}Algunas personas pueden pensar que este método sospecha un poco de quitarse los pantalones y los pedos, pero de hecho, esta operación a menudo se necesita en proyectos reales.
En lugar de escribir una subcadena larga, debemos escribir un método para simplificar el código, y también es muy conveniente hacer clic directamente en la cadena correspondiente y seleccionar Dellast al codificar el código.
En una oración, ¡está bien usarlo!
3. Complete la longitud especificada de la cadena numérica
// Longitud fija para cadenas numéricas String.prototype.addzero = function (n) {var num = this var len = num.ToString (). Longitud; while (len <n) {num = '0' + num; len ++; } return num;}Es posible que no lo entienda al leer los comentarios. De hecho, solo está agregando esta cadena a "2". Este método de extensión se puede usar de esta manera. addzero (2)
Entonces la cadena devuelta es una cadena como "02".
¡Todos han dicho que está bien después de usarlo!
4. Convertir el tipo de fecha de datos hasta la fecha hasta la fecha
String.prototype.dtd = function () {return new Date (date.Parse (this.ToString (). Reemplazar (/-/g, "/"))}5. Apodo de usuario omitido
// El apodo del usuario omite string.prototype.telhide = function () {var name = este return name.substr (0, 1) + "****" + name.substring (name.length - 1, name.length)}Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.