Archive for the ‘Яваскрипт’ Category

Отделяем разряды числа

Понедельник, ноября 26, 2018

.toString().replace(/(\d)(?=(\d{3})+([^\d]|$))/g, “$1.”)

TinyMCE убирает слэши у ссылок и картинок

Воскресенье, августа 23, 2015

Обнаружив что картинки не отображаются на странице после редактирования текста с помощью визуального редактора TiniMCE я был немного расстроен.

Проверил на ссылках, тоже не работает. Если указывать путь к картинке от корня сайта, например /images/picture1.jpg, то сразу же после изменения начальный слэш удаляется, пробовал даже изменять через исходный код так <img src=/images/picture1.jpg>, эффект тот же, слэши режутся безжалостно.

Решение вопроса оказалось простым: при инициализации TiniMCE отметить  опцию convert_urls, по умолчанию ее значение TRUE. изменив на FALSE мы избавимся от обрезания слэшей.

Пример кода

tinymce.init({
...
convert_urls: false
});

Document ready jQuery

Среда, июля 24, 2013

$(document).ready(function() {
// действия выполняемые после загрузки документа
});

Перехват событий jQuery

Среда, декабря 19, 2012

Все JavaScript-библиотеки нуждаются в методах для обработки событий, и jQuery не является исключением. Как и в случае attr() и css(), методы для событий могут служить двум целям: их вызов с функцией в качестве аргумента назначает обработчик события, вызов без аргумента эмулирует возникновение этого события:

jQuery('p').click(function(){
jQuery(this).css('background-color', 'red');
});

Выставляем для всех параграфов обработчик клика мыши, по которому они становятся красными.

 jQuery('p:first').click()

Эмулируем клик для первого параграфа на странице.
Похожие функции используются для других событий браузера: mouseover, keyup и т.д. Следует заметить, что при вызове обработчика событий ключевое слово this ссылается на элемент, который это событие вызвал; использование jQuery(this) является расхожим приемом, чтобы вызвать методы jQuery для этого элемента.
Пара функций, относящихся к событиям, заслуживает отдельного упоминания:

jQuery('a').hover(function() {
jQuery(this).css('background-color', 'orange');
}, function() {
jQuery(this).css('background-color', 'white');
});

hover() является сокращением для сразу двух событий: onmouseover и onmouseout.
jQuery(‘p’).one(‘click’, function() { alert(jQuery(this).html()); });
one() выставляет обработчик событий, который будет удален после первого своего вызова. В вышеприведенном примере всем параграфы должны сообщить (alert) свое содержание после первого клика по ним.
jQuery также поддерживает собственные события через методы bind() и trigger() (подобные click()). Собственные события могут принимать аргументы, передаваемые при помощи массива в вызове trigger():

jQuery(document).bind('stuffHappened', function(event, msg) {
alert('Что прозошло: ' + msg);
});
jQuery(document).trigger('stuffHappened', ['Привет!']);

urlencode для JavaScript

Четверг, сентября 27, 2012

закодировать тект подобно тому как это делает функция urlencode() в php можно функцией
encodeURIComponent();

Форматируем номер телефона

Вторник, ноября 1, 2011

Если номер телефона выглядит 89235005355, то читать его не удобно, а если 8-923-500-53-55 то прочитать его гораздо легче.

Добиться нормального отображения телефона можно сдледующим образом:

$pnone="89235005355";
$reg="([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})";
$pat="\\1-\\2-\\3-\\4-\\5";
$newPhone=ereg_replace($reg,$pat,$phone);

то же саме на JavaScript:

var pnone="89235005355";
var reg="([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})";
var pat="$1-$2-$3-$4-$5";
var newPhone=phone.replace(RegExp(reg),pat));

В обоих случаях в переменной newPhone будет отформатированный номер телефона: 8-923-500-53-55.

Ну и в завершении скажу, что это решение подходит только для федеральных номеров РФ и то если они начинаются с 8 на не с +7.



Округление в php, mySQL и JavaScript

Пятница, сентября 9, 2011

Не редко приходится округлять числа при программировании для веб. Встроенные функции веб-языков позволяют выполнять эту оперцию.

Округление в PHP

Функция round().

Синтаксис:

float round ( float value [, int precision] ) .

Первый параметр всегда обязателен, в нем передается дробное число, второй параметр задает число знаков после запятой, если он не указа то функция возвратит целое число.

Правила округления для функции round соответствую правилам округления в обычной математике, т.е. 3.7 будет округлено до 4, тогда как 4.4 будет округлено до 3.

Функция ceil()

Синтаксис:

float ceil ( float value )

Эта функция округляет число до ближайшего челого числа в большую сторону, т.е. 3.1 и 3.9 будет округлено до 4.

Функция ceil() всегда имеет  только один параметр.

Функция floor();

Синтаксис:

float floor(float value)

В  отличии от функции ceil() эта функция округляет число в меньшую сторону, таким образом, для чисел 3.1 и 3.9 функция floor() вернет 3.

Округление в MySQL

ROUND(число [, точность])  аналог функции round() в php.

TRUNCATE(число) аналог функции ceil() в php.

FLOOR(число)  аналог функции floor() в php.

Округление в JavaScript

Метод round() объекта Math.

Синтаксис:

Math.round(x)

Округляет число подобно функции round() в php без второго параметра.

Метод floor() объекта Math.

Синтаксис:

Math.floor(x)

Округляет число до ближайшего  большего или равного целого числа.

Метод ceil() объекта Math.

Синтаксис:

Math.ceil(x)

Округляет число до ближайшего  меньшего или равного целого числа.

Метод  toFixed(число знаков после запятой)

Для округления в Javascript вещественного числа до N знаков после запятой можно воспользоваться методом toFixed объекта Number:
(3.2489).toFixed(2); //результат 3.24
Math.PI.toFixed(4); //результат 3.1416 – число π с 4 знаками после запятой

Метод toFixed возвращает число в виде строки с заданным числом цифр после запятой.

Метод toPrecision()

Синтаксис:

numObj.toPrecision ([precision])

precision  – Необязательный. Число значащих цифр. Должно быть в диапазоне 1 – 21, включительно.

Округляет число до общего количества цифр вне зависимости: после запятой или нет.

Number("90").toPrecision(4)  // = 90.00
Number("90.1234").toPrecision(4)  // = 90.12

Если указанное значение precision не достижимо обрезанием десятичной части – переводит число в экспоненциальную форму.

Удаление HTML-элемента со страницы средствами JavaScript

Среда, июня 15, 2011

Иногда возникает потребность удалить элемент со страницы используя Javascript, не скрыть, а именно удалить. То есть сделать так, как будто бы элемента не было на странице.

Оказывается, что сделать это не так уж сложно:

element = document.getElementById(‘elementid’);

if (element) element.parentNode.removeChild(element);

После выполнения этого кода, document.getElementById(‘elementid’) вернет null.

Кроссбраузерный запрет прохождения события javascript.

Среда, мая 25, 2011

Вообщем такая история: внутри формы поставил поле, которое подгружается аяксом (ajax), и варианты значений этого поля подгружаются в div ниже самого поля. Выбор нужного варианта можно осуществить кнопкой мышки или кнопками “Стрелки” на клавиатуре, так вот при нажатии клавиши Enter происходила отправка формы что совсем не айс. Дабы избежать этого сделал следующее:

<script type="text/javascript">
function func(ev)
{
var ev = ev || window.event;
if (ev!=undefined)
 {
 if (ev.keyCode==13||ev.which==13)
 {//клавиша Enter нажата именно с нашего инпута
 //Это работает во всех браузерах кроме мозилы (Mozilla)
 ev.returnValue = false;
 if (ev.stopPropagation)
 { //Это специально для мозилы!
 ev.stopPropagation();
 ev.preventDefault();
 }
 return false;
 }
}
/*
тут обработка нажатия других клавиш
*/
}
</script>
<form>
 <input onkeydown="func(event)" />
 <!–Тут другие элементы формы–>
</form>

Меняем язык timyMCE

Понедельник, февраля 14, 2011

Для задания языка редактора tinyMCE нужно всего лишь добавить параметр ‘language’ со значением ‘ru’. Конечно имеется ввиду, что языковый файл уже скачан, и его содержимое скопировано в папку с редактора.

Пример:

theme : “advanced”,
language: “ru”,
plugins : “table,save,advhr,advimage,advlink,insertdatetime,
….