1. JavaScript / Говнокод #3632

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    // Remove empty tags (three times, just to be sure).
    html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
    html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
    html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;

    найдено в коде FCKEditor - редактора для веб-интерфейса

    Запостил: mozg_raka, 02 Июля 2010

    Комментарии (60) RSS

    • а что если при удалении одного пустого тега его родительский тег станет пустым?
      Ответить
      • второй раз удалим. А если вложенность больше трех -- накопипастим еще 20 таких же строчек
        Ответить
    • >>three times, just to be sure
      ))))))))))))))))))))

      опенсурс на языках типа javascript это, конечно, кладезь
      Ответить
    • Здесь явно не хватает бесконечного цикла.
      Ответить
      • здесь явно не хватает мозгов...
        на цикл с условием (конечный)
        Ответить
    • Начиная с версии 3.0, редактор называется CKeditor. Аббревиатура FCK, содержавшаяся в прошлом названии — распространённое в английском языке вульгарное выражение (при старте проекта бразилец Фредерико об этом не знал).
      Как корабль назовёшь, так он и поплывёт...
      Ответить
      • lol
        да о том что такое FCK даже дети малые знают
        Ответить
      • Педивикия такая педивикия...

        Кстати:
        javascript:(function(){document.designMo de="on"})()
        Ответить
        • ие онли
          Ответить
          • ... и опера. У мозиллы тоже какое-то свое средство есть http://www.mozilla.org/editor/midasdemo/
            Собственно, я убежден, что несмотря на политкорректные лизания эти редакторы отмрут в ближайшем времени
            Ответить
            • Хоть я и ненавижу IE, но он позволяет сохранить изменения на диск через меню «Файл»→«Сохранить». Да и возможности редактирования в Опере слабее. Эх, если бы эта штука была во всех браузерах!
              Ответить
              • Потому что HTML и WEB изначально задумывались нифига не для того, для чего их сейчас юзают.

                Отсюда все косяки типа стейт-лесс у HTTP, отсутствие многих фишек в HTML итд
                Ответить
                • А кстати, светлой памяти Netscape Composer позволял таки православно редактировать страницы и сохранять их не менее православным методом PUT
                  Ответить
                  • Так Seamonkey жив, и в нём есть Composer, и метод PUT есть. Правда, симанки медленнее фаерфокса, поэтому пользователи выбирают лисичку.
                    Ответить
                    • FireFox это не лиса, и она отнюдь не быстрая:)
                      Ответить
                      • энто Огнелис ;)
                        не быстрая, но зато с аддонами - мощная шняга, которая ломает фактически любую рекламу + возможность качать откуда угодно без ожиданий, видива с ютуба, прочей хни, и даже того же вконтактика. Да, и юзер-скрипты.
                        Ответить
                        • "Огненная лиса" она же "огненная кошка", "кошка-медведь" или "малая панда" -- животное никак не относящееся к лисам, и даже к хищника не относящееся:)
                          Лисой ее назвали европейцы, из за окраса. Китайцы считали ее кошкой.

                          А браузер конечно всех рвет в первую очередь из за плагинов и файрбага (хотя у хрома тоже есть не плохие средства).

                          Я не юзаю его в повседневной жизни (дюже много течет памятью), но если мне надо например поиграться с заголовками (live http headers) то я иду конечно к файрфоксу, для веб-девелопера он крут
                          Ответить
                          • А про Seamonkey что скажете?
                            Ответить
                            • не юзал) Он же из мозилы вырос?

                              А скин в файр-фоксе у меня стоит legacy: как в нетскейпе.

                              Помню, как я под него верстал 10 лет назад. Помню таг "layer":)
                              Ответить
                              • Да, из мозиллы. Файрфокс — это только браузер, а Seamonkey — это аналог нетскейповского коммуникатора (браузер, компоновщик, почтальон, IRC), то есть всё в одном флаконе.
                                Это совершенно отдельная ветвь. На тестах по скорости он показывает худшие результаты, чем FF. Наверное, из-за этого и менее популярен.
                                Странно, что мозиловские проекты расщепились.
                                Ответить
                          • Лично я держу FF исключительно из-за FireBug`а
                            Ответить
                            • Я принципиально перелазил на девелоперские фичи хрома.
                              Ох и не легко же мне было... До сих пор иногда FF открываю.
                              Ответить
                        • Опера и без аддонов мощная и быстрая. Рекламу рвёт с помощью urlfilter.ini (штатное средство) + UserJS + UserCSS (однако CSS из этого всего наименее полезно).

                          Опять у нас браузерный холивар. На PHP+JS+HTML локальные войны растут, как на навозе.
                          Ответить
                          • Интересно, а в опере режется ютубная реклама? Вроде как в комментариях постоянно жалутся о рекламе перед роликом, а я постоянно сижу в ютубе и ни разу её не видел :\
                            Ответить
                            • Аналогично не видел, хотя юзерскрипт для рекламорезки не подключал. Даже urlfilter.ini выключил. Попробовать ещё hosts-файл почистить?

                              Может быть, жалуются на video.mail.ru? Где-то ещё на подобных видеохостингах видел рекламу, встроенную в плеер.
                              Ответить
                          • Интересно, браузерные холивары - это растения или грибы-копрофаги...

                            Насчет userJS как средство борьбы с рекламой - не согласен, эмулируя Adblock Plus авторы скриптов нагибают Оперу десятками регулярных выражений (которых во встроенном Content Blocker`е нет)

                            Про рекламу с ты-трубы - тоже очень хочется подтвержденный инцидент, чтобы раз и навсегда заблокировать (полагаю что идет отдельным файлом, следовательно должен быть URL)
                            Ответить
                          • Опера стала отличной с версии 8.
                            И была такой буквально до начала этого года.
                            Теперь опять испортилась.
                            Ответить
                            • меня всегда напрягали "плюшки" - у оперы это появились всякие юниты и проч.
                              Ответить
                              • Опера позиционирует себя как комбайн, никуда от этого не деться. Можно перманентно отключить opera:config#UserPrefs|EnableUnite
                                Тем не менее, жалко шимпанзе-часов потраченных на разработку; при том, что есть уже готовые фичи вопиющие о доработке
                                Ответить
                                • видимо любой софт обречен расти из удобной утилитки "для себя" или как легковесная замена комбайнам до ужасного, неповоротливого и глючного монстра.
                                  Opera, AcdSee, Nero, WinAMP и так далее....
                                  Ответить
                              • Ага, откатить пришлось из-за наворотов 10 версии.

                                Вот что меня в опере напрягает - многие сайты (контакт, юкоз, ЛЖ) нехило тормозят при включённом ЖС.
                                Ответить
                                • я еще не встречал броузера, который ни с того ни с сего вдруг иногда НЕ начинал без повода кушать бедный процик.
                                  Особенно это касается флеш-видео, но это видимо уже беда именно флеша.
                                  Ответить
                                  • Ага, флэш чем новее, тем тормознее, а линуксовая версия ещё тормознее виндовой. Откатить на старую версию нельзя, потому что хитрые флэшкописатели переписывают свой код, чтобы он не работал на старом флэше. Так что вина браузеров в этом невелика.
                                    Ответить
                                    • но я говорил не только про флеш.
                                      Ответить
                                      • Флэш это вообще пиздец. Долго бить ногами надо тех, кто делает интерфейс на флеше. Я понимаю там, браузерное видео или браузерные игры, но ненужные свистоперделки просто бесят.
                                        Ответить
                                        • например, флеш-баннеры - ща пик их крутости, мини-игры типа "убей их всех! ааа, лох, тебя убили! пробуй еще раз!" - вообще, бесят - не то слово.

                                          вот только кроме флеша, не понимаю, почему броузеры и без него иногда виснут там, где, по сути, им нет поводу?
                                          Ответить
                                          • Да что мешает им баннеры анимированными гифками сделать тогда уж?
                                            Я вот, когда делал свой говнокодерский сайт, вообще просто вспомнил уроки ХТМЛ по информатике за 8 класс и сделал тупо текст с абзацами, ссылками и иногда картинками. И никто не жаловался.
                                            Ответить
                                            • >Да что мешает им баннеры анимированными гифками сделать тогда уж?
                                              гифка не реагирует на движения мыши, на кол-во кликов, ей даже все равно в какую точку кликнули
                                              Ответить
                                              • > ей даже все равно в какую точку кликнули

                                                Разве? Со статическими жпегами я такое умел делать в 8 классе. Даже лабиринтики устраивал.
                                                Ответить
                                                • без жабаскрипта?
                                                  Ответить
                                                  • g html тег map
                                                    Ответить
                                                    • понятно, карты ссылок.
                                                      Ответить
                                                    • Карты бывают двух типов: user-side (usemap, когда тег map нарезает области) и server-side (ismap), когда по щелчку на любом пикселе на сервер отпраляется GET с параметрами вида ?23,45. Во втором варианте вся логика выполняется на сервере.
                                                      Ответить
                                                      • туда же input[type=image] но для хорошей, "живой" интерактивности и этого мало. Флеш или жабаскрипт достаточно мощны
                                                        Ответить
                                                        • Для сраного баннера такой интерактивности за глаза.
                                                          Ответить
                                              • В GIF89 были интерактивные расширения: ftp://garbo.uwasa.fi/pc/gifutil/89aillus.zip
                                                Только редкие вьюеры их поддерживали (2show из того же каталога поддерживал). Если бы не дурацкий патент на LZW, GIF мог бы занять то место, которое сейчас занимает флэш. Но увы, интерактивность гифа похоронили.
                                                Ответить
                                        • особенно приятно, что в говносайтах на флеше обычно не работает вперед-назад, не послать ссылку никому итд..

                                          а дизайнеры говорят: зато красиво.
                                          Хотя большинство сайтов даже не красиво, а ужасно, пошло и однообразно
                                          Ответить
                                          • > а дизайнеры говорят: зато красиво.

                                            Пидарасы такие дизайнеры. У пидоров всегда извращённое понимание красоты.
                                            Ответить
              • Опять букмарклет, опять Опера/ИЕ:

                javascript:with (window.open("")) {
                	document.open("text/plain");
                	document.write(opener.document.documentElement.outerHTML);
                	document.close();
                	document.title = "Source:" + opener.document.title;
                	focus();
                }
                Ответить
                • Немного не то. Этот код открывает документ как текст. Удобно, но невизуально.
                  И кроме того у Оперы при редактировании через Ctrl+U есть кнопка «Применить изменения», сохраняющая изменения в кэше.
                  Ответить
                  • Нет, этот букмарклет открывает DOM snapshot как текст, и его можно сохранить. Если скомбинировать с первым, то можно редактировать "живой" DOM, а не исходник страницы.
                    Ответить
                    • Спасибо огромное! Теперь вижу, что из мешанины HTML+XHTML на выходе получается чистый HTML. Этот инструмент можно использовать для получения валидных страниц!
                      Ответить
          • TineMCE
            Ответить
            • ЗубMCE? =) Tiny же.
              Ответить
              • Tiny конечно же)
                Ответить
                • Есть такая штука. К http://blogs.golden.ru/ её прикрутили настолько безобразно, что записи в блоге приходится набирать HTML-кодом, не используя WYSIFIG. А поскольку движок блога некошерные теги фильтрует, для разметки пришлось использовать SPAN с атрибутом style.
                  Ответить

    Добавить комментарий