Кто владеет javascript ом?

(Ответов: 24, Просмотров: 1729)
Страница 3 из 3 Первая 123
  1. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от Весёлый химик Посмотреть сообщение
    Если не уберете - в ИЕ ошибки могут показываться.
    это не страшно, у меня на сайт не зайти с IE)
    Попробовал, все работает отлично. Спасибо!
    Последний маленький вопрос - как сделать чтобы происходила отмена действия при нажатии на туже кнопку,
    то есть убирались теги <pre><code> с выделенного?

    Если я правильно понимаю, то нужно дописать обратную команду, что-то примерно такое:

    Развернуть текст

    Код:
    // Задаем функцию.
    // Первый параметр: строка
    // Второй параметр: нужно ли отменить перевод
    var htmlSpecialChars = function(string, reverse)
            {
     
                    // specialChars это список символов и их сущностей
                    // specialChars["<"] = "&lt;";
                    // x — простая переменная, используемая в циклах
                    var specialChars = {
                                    "&": "&amp;",
                                    "<": "&lt;",
                                    ">": "&gt;",
                                    '"': "&quot;"
                            }, x;
     
                    // Если мы отменяем перевод
                    if (typeof(reverse) != "undefined")
                    {
     
                            // Нужно создать временный массив
                            reverse = [];
     
                            // Помещаем каждый специальный символ в массив
                            for (x in specialChars)
                                    reverse.push(x);
     
                            // Создаем обратный массив
                            // ["<", ">"] становится [">", "<"]
                            reverse.reverse();
     
                            // Для каждого специального символа:
                            for (x = 0; x < reverse.length; x++)
     
                                    // Заменяем все экземпляры (g) сущности оригиналом
                                    // если x = 1, то
                                    // reverse[x] = reverse[1] = ">";
                                    // specialChars[reverse[x]] = specialChars[">"] = "&gt;";
                                    string = string.replace(
                                            new RegExp(specialChars[reverse[x]], "g"),
                                            reverse[x]
                                    );
     
                            // Получаем оригинальную строку
                            return string;
                    }
     
                    // Если нам нужно не получать оригинал, а перевести строку в сущности
                    // Для каждого специального символа:
                    for (x in specialChars)
     
                            // Заменяем все экземпляры специального символа его сущностью
                            // Запомните, в отличие от обратного алгоритма, где x была числом
                            // здесь х это необходимый символ (&, <, > или ")
                            string = string.replace(new RegExp(x, "g"), specialChars[x]);
     
                    // Получаем переведенную строку.
                    return string;
            };
    [свернуть]
    Последний раз редактировалось cOAPerator; 09.01.2012 в 02:44.
    • 0
  2. Дипломник
    • Регистрация: 29.11.2009
    • Сообщений: 131
    • Репутация: 32
    Насчет части про "по нажатию на ту же кнопку" - это надо api смотреть, а так почему бы просто обратную замену не делать, аналогично:
    Код:
    content = content.replace(/&/g, "&amp;"); 
    						content = content.replace(/</g, "&lt;"); 
    						content = content.replace(/>/g, "&gt;"); 
    						content = content.replace(/"/g, "&quot;");
    , только параметры местами поменять? Или есть какие-то подводные камни, которые я сразу не увидел?
    • 1

    Спасибо сказали:

    cOAPerator(10.01.2012),
  3. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Весёлый химик, да можно в принципе, только как это к этой же кнопке то привязать? то бишь чтобы 2 функция выполнялась при повторном нажатии? или Вы имеете ввиду проверять по условию?
    Последний раз редактировалось cOAPerator; 09.01.2012 в 12:12.
    • 0
  4. Дипломник
    • Регистрация: 29.11.2009
    • Сообщений: 131
    • Репутация: 32
    Как привязать к кнопке - не знаю, в примере плагина по ссылке есть подветка кнопки при выделении картинки, но там просто проверяется текущий тег, как сделать подсветку при кликании внутрь преобразованного фрагмента - я, если честно, не особо даже представляю. Тут либо в API есть какой-то метод для этого, либо смотреть как сделано аналогичное в других плагинах или в ядре для жирного/курсива или ссылок.
    • 0
  5. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Весёлый химик, ясно, ладно покопаю еще ядро, может чего нарою) Все равно огромное спасибо!
    • 0
Страница 3 из 3 Первая 123

Похожие темы

Темы Раздел Ответов Последний пост
Javascript оптимизатор
Дайджест блогосферы 0 13.08.2011 01:26
Анимированные кнопки без JavaScript
Дайджест блогосферы 0 04.04.2011 16:43
помогите с javascript
Web программирование 1 30.01.2011 14:46
Подозрительный Javascript/IFrame
Web программирование 4 15.11.2010 20:02

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры