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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    var comment = document.querySelector('textarea#formElm_text');
      var info = comment.parentNode;
    
      if(!comment || !info) return;

    https://github.com/1024--/govnokod.ru-userscripts/blob/master/bbcode.user.js

    Запостил: minusinho, 31 Мая 2018

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

    • Я до сих пор не могу запомнить "document.querySelector" и особенности обработки его результатов, так что продолжаю пока использовать "$". По-хорошему, скрипт должен был выглядеть так:

      var comment=$('textarea#formElm_text');
      var info=comment.parent();
      if(comment.length==0 || info.length==0) return;
      Ответить
      • Я тоже, но тянуть "$" ради одного короткого юзерскрипта - не очень идея
        Ответить
        • Так все вроде как уже давно не через телефонные модемы пользуются Интернетом, лимитов нет, и, таким образом, "$" не окажет серьёзной нагрузки на Интернет-канал и на мошну пользователя.
          Ответить
      • Я тоже, но тянуть "$" ради одного короткого юзерскрипта - не очень идея
        Ответить
    • И чо?
      Ответить
      • Хуй через плечо.
        Ответить
      • document.querySelector вернул null, comment.parentNode - падение, проверка !comment || !info - бесполезная. (что, собственно, у меня и произошло).
        И во-вторых, comment.parentNode всегда будет, т.к. textarea не может быть корнем документа
        Ответить
        • Ой, а шо, js может падать с исключением? Я думал он как пхп.
          Ответить
    • я бы так слепил
      var comment,info;
      if (comment = document.querySelector('textarea#formElm_text'))
        info = comment.parentNode;
      else
        return;
      Ответить
      • Какоой ты скууучный
        if(!((comment = document.querySelector('textarea#formElm_text)) && (info = comment.parentNode))) return;
        Ответить
    • Спасибо, надо будет исправить.

      Ещё есть какой-то баг, из-за которого панель с кнопками не появляется, когда пользователь пишет свой второй комментарий в треде без перезагрузки страницы. На ГК в этом случае используется какая-то другая DOM-питущня, и скрипт падает.
      Хотел потестить, но для этого надо написать комментарий и получить возможность дебажить 5 минут, затем ещё комментарий и т.д. - было лень мусорить.
      Ответить

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