Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Получение всех функций JavaScript на странице

21.07.2019 | Категория: Web-мастеру и не только | Автор: ManHunter
Иногда в процессе разработки появляются странные задачи. Вот и на этот раз возникла необходимость узнать все пользовательские функции JavaScript, которые задействованы на странице. Немного колдунства и получился вот такой код:
  1. (function() {
  2.     var source;
  3.     for (var method in window) {
  4.         if (typeof window[method]=="function" && window.hasOwnProperty(method)) {
  5.             // Текст функции
  6.             source=Function.prototype.toString.call(eval(method));
  7.             // Пропускаем нативные функции
  8.             if ((/\{\s*\[native code\]\s*\}/).test(source)) { continue; }
  9.             // Вывести название и текст функции
  10.             document.write('<pre>');
  11.             document.write('<div><b>'+method+'</b>:</div>');
  12.             document.write(source);
  13.             document.write('</pre>');
  14.         }
  15.     }
  16. }());
На выходе вы получите список всех функций за исключением нативных. Определение нативных функций предельно простое, делалось под конкретную задачу, если надо чтобы было красиво, то вам сюда. Пример работы скрипта вы можете посмотреть на демонстрационной странице.

Просмотров: 763 | Комментариев: 0

Исследование защиты программы 1st JavaScript Editor

09.01.2019 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы 1st JavaScript Editor

1st JavaScript Editor - редактор для начинающих и профессиональных web-разработчиков, поддерживающий синтаксис JavaScript, HTML, CSS, VBScript, PHP и ASP. Перечислять все его возможности я не буду, вы можете посмотреть их на офсайте, скажу только, что они весьма обширны. Без регистрации редактор работает три недели, после чего придется обратиться в ближайшую кассу. Или придется прочитать эту статью.

Читать статью целиком »
Просмотров: 1728 | Комментариев: 7

Сортировка строк HTML-таблицы на JavaScript

05.12.2018 | Категория: Web-мастеру и не только | Автор: ManHunter
Понадобился скрипт для сортировки строчек HTML-таблицы в зависимости от значений столбцов. В этих ваших интернетах есть немало готовых решений, но, как часто случается на моей работе, постановка задачи включает в себя кучу дополнительных условий. Например, в ячейке таблицы может быть не просто текст, а несколько HTML-тегов, сортируемое значение может быть отформатировано особым образом или к нему могут быть дописаны какие-нибудь дополнительные данные, а то и вовсе отображаемое текстовое значение в ячейке соответствует какому-то внутреннему индексу в системе и сортировать надо именно по этому индексу. Короче, отображаемое содержимое ячеек таблицы не влияет на ожидаемый порядок их сортировки.

Разнобой со значениями, влияющими на сортировку, решается добавлением к каждой строке таблицы набора data-атрибутов, введенных в HTML5. Вкратце, чтобы не грузить вас теорией, data-атрибуты позволяют хранить нужную вам дополнительную информацию в стандартных элементах HTML без применения хаков вроде нестандартных атрибутов, лишних DOM-свойств и т.п. Например:
  1. <tr data-price="10" data-ident="4" data-area="32" data-dev="СуперСтрой">
  2.     <td>менее 10 млн.</td>
  3.     <td>без отделки</td>
  4.     <td>32 м<sup>2</sup></td>
  5.     <td>ООО СуперСтрой</td>
  6. </tr>
  7. <tr data-price="50" data-ident="3" data-area="62.7" data-dev="ПИК">
  8.     <td>50.000.000</td>
  9.     <td>черновая</td>
  10.     <td>62.7 м<sup>2</sup></td>
  11.     <td>ГК "ПИК"</td>
  12. </tr>
Как вы видите, содержимое в data-атрибутах отличается от содержимого ячеек, это как раз те значения, по которым должна выполняться сортировка. Если какой-либо атрибут не указан, то такие строчки будут просто перенесены в начало таблицы.

Читать статью целиком »
Просмотров: 3117 | Комментариев: 7

Отмена AJAX-запроса

07.05.2018 | Категория: Web-мастеру и не только | Автор: ManHunter

Отмена AJAX-запроса

Вряд ли кто-то будет спорить, что технология AJAX для передачи данных - это очень удобно. В дополнение к предыдущим статьям я расскажу, как можно отменить AJAX-запрос. Зачем это надо? Пример из практики: есть карта, на видимую часть которой асинхронно подгружаются объекты. Пользователь перетаскивает карту, соответственно, на каждый новый видимый участок запрашивается новый список объектов. Иногда получается так, что запрос выполняется дольше, чем пользователь перемещает карту. Накапливается очередь из запросов на сервер, в свою очередь приводящая к очереди на отображение данных на клиентской стороне. Хотя правильно было бы показывать только результаты самого последнего запроса, а остальные запросы просто подавлять.

Читать статью целиком »
Просмотров: 1121 | Комментариев: 0

Скрипт быстрого выбора для элемента SELECT

22.09.2017 | Категория: Web-мастеру и не только | Автор: ManHunter
Небольшой вспомогательный скрипт на JavaScript, который облегчает работу с выпадающими списками. Суть его в том, что рядом с элементом select создается текстовое поле. При вводе фрагмента строки в это поле, выпадающий список автоматически устанавливается на строку, в которой этот фрагмент найден. Это заметно упрощает работу с формами, где есть длинные выпадающие списки. Форма остается прежней, никаких кастомных модификаций не требуется:
  1. <div>
  2.     <select>
  3.         <option value="">---</option>
  4.         <option value="1">Yellow Banana</option>
  5.         <option value="2">Red Apple</option>
  6.         <option value="3">Green Leaf</option>
  7.         <option value="4">Some strange</option>
  8.     </select>
  9.  
  10.     <input type="text" onkeyup="selecthelper(event);">
  11. </div>
Важно, чтобы вспомогательное поле ввода находилось после выпадающего списка, но обязательно на одном уровне иерархии с ним в DOM-структуре. Вы можете, в случае необходимости, доработать скрипт-обработчик под ваши нужды. Верстка остается валидная, количество выпадающих списков и полей ввода в форме может быть любым.

Читать статью целиком »
Просмотров: 1783 | Комментариев: 5

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 3 (0.0485 сек.) / Память: 4.75 Mb
Наверх