В этой статье разделены некоторые из более практичных методов JS, которые я накопил в повседневной жизни для вашего руководства и оценки. Я хочу представить его в разных статьях, но я нашел это немного больше. Я разобрался с методами, но у меня не так много способов показать их. Конечно, некоторые из них - это методы, которые я видел в Интернете, которые, я думаю, очень практичны. Я опубликую их здесь, чтобы все обсудили.
1. Нажмите, чтобы вернуть, если нет предыдущей страницы, затем перейдите на указанную страницу.
Прежде всего, требования потребностей клиента - одну страницу, которую разделяют для WeChat, нажмите, чтобы вернуться, чтобы перейти на домашнюю страницу веб -сайта.
В течение этого периода эта функция обсуждалась с клиентами. Можете ли вы добавить кнопку на домашнюю страницу, чтобы прыгнуть на страницу?
Тем не менее, этот метод не может работать на каждой странице, и он указывает на то, что страница совместного использования, которая требует этой функции, не имеет следующего значка, и это не влияет на красоту. Итак, мне пришлось искать рубца. Собака также полна функций, которые играют в краевые шарики.
Итак, благодаря моей собственной попытке, у меня есть следующий код:
// Вернуться на домашнюю страницу без страницы раньше, вернитесь к функции pushistory () {// Получить количество записей в стеке истории браузера // Поскольку текущая страница протолкнута в стек При загрузке страницы, она определяет, является ли это меньше 2 if (vistory.length <2) {var = {title: "Index", url: gethtpprefix + "HTML"; window.history.pushstate (состояние, "индекс", gethttpprefix + "index.html"); state = {title: "index", url: ""}; window.history.pushstate (State, "index", ""); }}Затем добавьте следующий код в соревнование готового на странице:
setTimeout (function () {pushistory () window.addeventListener ("popstate", function (e) {5 if (window.history.state! = null && window.history.state.url! = "") {location.href = window.history.state.url}});}, 300);Конкретная функция состоит в том, чтобы определить, была ли страница раньше. Если нет, вставьте адрес ссылки веб -сайта в состояние (домашняя страница используется здесь), а затем прослушайте событие Popstate, чтобы выполнить соответствующую операцию функции.
Там могут быть некоторые незначительные проблемы с этим кодом, поэтому я планирую опубликовать его, и кто -то может обсудить и улучшить его вместе.
2. Удобный метод ведения журнала
Я считаю, что все уже устали от словесной длины console.log () при отладке страницы. Некоторые люди могут использовать ярлыки для быстрого входа (например, входной компиляционной среды CL Cl Cl -компиляции). Однако, когда проект будет выпущен, его все равно будет трудно очистить. Поэтому я просто написал метод, чтобы справиться с этой ситуацией.
function lll () {// глобальная переменная _debug используется для управления переключателем информации отладки if (_debug) {var arr = []; // Аргументы - это набор параметров методов. Это делается, чтобы не ограничивать количество параметров и облегчить отладку для (_Item in аргументов) {// Потому что личные привычки, которые изображается в строке, отображается в строке, строка фильтруется и сплачивается if (typeof _item == "String") {arr.push (_item)} ense {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: "имя", "..." "Вы, кажется, понимаете больше?
3. Получить информацию о позиционировании браузера (поддерживает мобильный терминал)
Многие проекты, которые я получил, представляют собой индивидуальную разработку на мобильном телефоне, поэтому часто используется информация, требующая текущего местоположения.
Тем не менее, многие интерфейсы в Интернете должны ссылаться на внешний раздел JS, такой как API Baidu, API WeChat и т. Д.
Далее я представлю метод, который не требует ссылки на внешний JS, но необходимо только отправить параметры на внешние ссылки API для получения позиционирования:
if (getCookie ('position') == "") {if (navigator.useragent.indexof ("micromessenger")> -1) {// Судья, является ли это терминалом weChat, в зависимости от ситуации, Navigator.geolocation.getcurrentPosition (функциональный getPositionSuccess (Position) {/jeat the CustructOcation Offectore Offectore of the naviGrator of the gatposcesscess (position) {/jeft of the browsocatosesositos html5 (мобильный терминал является наиболее точным, ПК будет иметь большое отклонение) var lat = position.coords.latitude; // Получить текущую широту var lng = position.coords.longitude; // Получить текущую долготу arr = [] arr.push (lng) arr.push (lat) // alert (position) $. "http://api.map.baidu.com/geocoder/v2/?ak=om55dvwvwluuu7shkz7uy8m6e&callback=renderRevers Beforesend: function () {// Поскольку этот процесс занимает некоторое время, лучше всего иметь подсказку загрузки на странице iosload () // Анимация загрузки страницы, которую я написал}, данные: {}, DataType: «JSONP», // Поскольку это перекрестная передача, это необходимо для передачи в форме JSONP JSONPCALLBACK: «RendERELERITION»: «Строка»,///идентичность,//идентичности,//идентичности,//идентификация,//идентичности. Трансмиссия требует, чтобы приемник и передатчик выполняли единый успех: function (data) {ios.hide (); (ошибка) {//Alert(Error.message);Этот код является частью кода в моем реальном проекте. Поскольку мне нужно определить, была ли получена информация о целевом направлении, я не могу получить ее один раз каждый раз, когда страница загружается, поэтому я сохранял информацию о целевом направлении с помощью файлов cookie.
Вначале мы определяем, существует ли текущая информация о положении, но нет. Затем определите, находится ли он на мобильном терминале (поскольку проект взят из терминала WeChat, я только что провел проверку терминала WeChat здесь)
Затем вызовите параметры интерфейса, предоставленные HTML5 для передачи данных, и JSONP, возвращаемый с Baidu, обрабатывается. Поскольку мой проект должен только получить информацию о городе, я просто приводим пример получения городов.
4. Получите численную часть строки
Поскольку я отвечаю только за реализацию функций в проекте, я сам не строю много страниц, но я также создам некоторые сложные ситуации, в которых значения в теге трудно получить.
например:
<div> Оригинальная цена 998 теперь только <a> 99,8! </a> </div>
Для таких страниц, иногда вам нужно получить 998 или 98. Это станет немного неприятным.
С помощью метода, который я предоставлю ниже, эта ситуация может быть легко решена
функция getNum (text) {var value = text.replace (/[^(0-9).]/ig, ""); вернуть parsefloat (значение); }Этот метод очень короткий, и он по сути соответствует закономерности. Замените символы, которые являются немерными или десятичными точками на пустые строки (фактически удаленные)
Данные, возвращаемые таким образом, - это число, которое мы хотим. Я наконец преобразовал его в операцию с плавающей запятой, которая должна облегчить пост-обработку данных. Например, держите два десятичных значения, вокруг них и т. Д.
5. Получить информацию об устройстве
//#область получить информацию об устройстве 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 и google kernel gecko: u.indexof ('gecko')> -1 & !! u.indexof ('khtml') == -1, // firefox kernel mobile: !! u.match (/applewebkit.*mobile.*/), // это мобильный терминал ios: !! U.match (// (i [^;]+; (u;)? ||. Заголовок и нижний вейксин: u.indexof ('MicroMessenger')> -1, // Будь то WeChat (недавно добавлено на 2015-01-22) QQ: U.Match (// SQQ/I) == "QQ" // Будь это QQ}; Фактическое использование следующим образом: if (browser.versions.webkit) {// Code выполнен для Apple и Google Kernel ...} //#endregionВот также способ судить информацию о устройстве, которую я написал и видел в Интернете.
Я лично думаю, что это очень полезно, поэтому поделюсь с вами.
Метод расширения строки-следующие методы для добавления данных типа строки
1. Скрыть часть строки за пределами указанной длины
/*Показать строку в указанной длине, а избыток отображается в эллипсах (LEN-SHOW Длина Default Trt-Stand String, если строка пуста)*/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)}Некоторые люди могут подумать, что этот метод немного подозрительно снимает свои штаны и пукает, но на самом деле эта операция часто требуется в реальных проектах.
Вместо того, чтобы писать длинную подстроение, мы должны написать метод для упрощения кода, а также очень удобно напрямую щелкнуть соответствующую строку и выбрать Dellast при кодировании кода.
В одном предложении можно использовать его!
3. Заполните указанную длину численной строки
// Фиксированная длина для числовых строк string.prototype.addzero = function (n) {var num = this var len = num.toString (). while (len <n) {num = '0' + num; Len ++; } return num;}Вы можете не понять это при чтении комментариев. На самом деле, это просто добавление этой строки к «2». Этот метод расширения может использоваться таким образом. Addzero (2)
Затем возвращенная строка - это строка, подобная "02".
Все сказали, что после его использования все в порядке!
4. Преобразование базы данных DateTime Type на сегодняшний день
String.prototype.dtd = function () {return new date (date.parse (this.tostring (). Reply (/-/g, "/"))}}}5. Пользовательский прозвище опущено
// Прозвище пользователя опускает string.prototype.telhide = function () {var name = это возвращаемое имя.substr (0, 1) + "****" + name.substring (name.length - 1, name.length)}Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.