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

    +174.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");
    document.body.innerHTML = document.body.innerHTML.replace("[b]", "<b>");
    document.body.innerHTML = document.body.innerHTML.replace("[/b]", "</b>");

    bb-коды на индусском сайте

    Запостил: fuckyounoob, 24 Декабря 2009

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

    • Подозреваю, что говнокод синтетический. Опера, например, не даёт доступа к document.body.innerHTML по соображениям безопасности.
      Ответить
      • Во-первых, опера таки даёт доступ, в чём можно убедиться, пройдя по адресу javascript:alert(document.body.innerHTML +="AAAAAAAA")
        А во вторых, для таких замен лучше использовать массив/хэш и цикл по нему.
        А в третьих, незакрытый юзером тэг сломает html на странице.
        Ну и в четвёртых, каждое присваивание innerHTML ведёт к перерендерингу, что в данном случае даёт тормоза на ровном месте.
        Ну и в пятых, говнокод не синтетический, а очень даже распространённый. Сам такое в детстве писал.
        Ответить
        • > опера таки даёт доступ
          Помню, что с этим мучился. Или это не Опера была... Короче, некроссбраузерно, я точно помню.
          > незакрытый юзером тэг сломает html на странице
          Бгг... Мог бы выложить BB-парсер на PHP, работающий по тому же принципу, что в говнокоде, но вот куда-то исходник дел. Там проблема незакрытых тегов решалась офигеть изящно - все посты на страницах сайта выводились в индивидуальных таблицах, а теги полужирности и т.д. работают только в пределах одной ячейки, поэтому незакрытый тег запарывал только конец текущего поста.
          Ответить
          • проблема невалидности html видимо мелочи
            и не вижу ничего "изящного" в том, чтоб переложить закрытие тегов на браузер
            изящное оно было бы если бы само закрывало теги
            Ответить
    • Ах ёжкин корень, дошло! Ахахаха! Тут даже while (document.body.innerHTML.indexOf("[b]")!=-1) нету, отсюда и копипаст, ыыыы
      Ответить
      • Какой while? Достаточно дописать глобальный модификатор, чтобы заменяла все искомые строки, а не первую
        Ответить
        • так, на всякий случай
          document.body.innerHTML = document.body.innerHTML.replace(/\[(\/?[bipu]|\/?pre)\]/img, "<$1>");

          <b></b>, а также <i> <p> <u> <pre>
          Ответить
    • может у прогера просто кнопки ctrl+c на клаве залипли
      Ответить
    • Подозреваю, что кодер хотел заменить не только [b], накопипастил строчек, но забыл поменять теги.
      Ответить
    • все пидарасы.
      Ответить
      • и пониебы
        Ответить
        • ,
                           / \,,_  .'|
                        ,{{| /}}}}/_.'
                       }}}}` '{{'  '.
                     {{{{{    _   ;, \
                  ,}}}}}}    /o`\  ` ;)
                 {{{{{{   /           (
                 }}}}}}   |            \
                {{{{{{{{   \            \
                }}}}}}}}}   '.__      _  |
                {{{{{{{{       /`._  (_\ /
                 }}}}}}'      |    //___/
                  {{{{`       |     '--'
                  }}}`
          Ответить

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