ЙажаСценарий / Говнокод #25671 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
function htmlspecialchars (s) {
    const el = document.createElement('span');
    el.innerText = s;
    return el.innerHTML.replace(/<br>/g, "\n");
}

Почему в жепаскрипте нет прямого доступа к этой функции? Почему я должен для этого работать с DOM или сам писать эту поеботу на рагулярках? Почему асё так анально?

Запостил: O4epegHou_nemyx O4epegHou_nemyx, (Updated )

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

  • Потому что то что ты делаешь - это костыль и должно решаться не лепкой тегов <br> или переносом строки, а правильной версткой
    Ответить
    • Тут речь не о переносах. Они тут вообще вскользь ("<br>" заменяется на "\n").

      Тут речь о том, что если текст запихнуть в элемент через innerText, то в свойстве innerHTML будет тот же текст, но с экранированными спецсимволами.
      Ответить
      • Именно об этом я и говорю - пихание текста с спецсимволами в innerText - это банальная лень. Корректным решением было бы каждый абзац оборачивать в отдельный тег, скажем, <p>. Как бонус, это позволило бы более гибко настраивать стилизацию текста, прямо как в текстовых редакторах
        Ответить
        • Речь о том, что я не могу просто заэскейпить спецсимволы хтмл в строке готовой функцией, хотя она в браузерах есть, просто из js почему-то недоступна.
          Ответить
          • Забавно, что во всяких фреймворках типа ангуляра сложнее оставить символы как есть, чем заэскейпить их.
            Ответить
          • > просто из js почему-то недоступна
            Это не JS-way. JS-way — делать простые вещи через жопу. почти не [/color]
            Ответить
            • Не просто делать, а еще доказывать чот так лучше.

              Если в твоем коде нету строчки "}}}})}}})," то ты вооще ламер
              Ответить
                • Как тебя в граватаре ещё не забанили?
                  Ответить
                    • Как найти в Map все ключи по опеределлному усллвю?

                      Object.keys(obj).filter(f=>...)
                      а в мапе как? там же итератор а не массив
                      Ответить
                      • Array.from?
                        да ведь оно загрузит все в память
                        а вдруг там итератор на 44444 гтб?
                        Ответить
      • > innerText
        Чую инторнет эксплодер
        Ответить
          • Интересное свойство. Геттер на порядки сложнее сеттера и отличается даже между версиями браузеров...
            Ответить
            • Это квиркота из ШУ4, которую зачем-то втянули в стандарт (вроде), в любом случае лаптю выше нужен
              Node.textContent
              не
              Element.innerText
              Ответить
              • >квиркота из ШУ4
                Български език?
                Ответить
                • Мелкомягкий Шебурашка Усмотритель
                  Ответить
                • Большой польско-русский словарь

                  adidasy [адидасы] — кроссовки
                  awantura [авантура] — скандал
                  brak [брак] — недостаток, нехватка
                  biegunka [бегунка] — понос
                  blady [бляды] — бледный
                  błąd [бўонд] — ошибка
                  bzik [бжик] — причуда
                  czas [час] — время
                  czaszka [чашка] — череп
                  deputat [дэпутат] — паёк
                  dworzec [двожец] — вокзал
                  dywan [дыван] — ковёр
                  forsa [форса] — бабло
                  gruby [грубы] — толстый
                  gospoda [господа] — гостиница
                  izba [изба] — комната
                  jutro [ютро] — завтра
                  krawat [крават] — галстук
                  lustro [люстро] — зеркало
                  nawet [навэт] — даже
                  owoce [овоце] — фрукты
                  parasol [парасоль] — зонт
                  prosto [просто] — прямо
                  pukać [пукачь] — стучать
                  sklep [склеп] — магазин
                  ssaki [ссаки] — млекопитающие
                  zakaz [заказ] — запрет
                  zapomnieć [запомнечь] — забыть
                  Ответить
                  • А всё потому, что расеянцы, кукарекающие про славянское братство - поместь финно-угров с татарами.
                    https://ic.pics.livejournal.com/zadel/13646173/18524/18524_original.jpg
                    Ответить
                    • Баян. Можно специально подобрать слова так, что любой язык окажется лишним.

                      Вот, например, одно слово на разных индоевропейских языках:

                      Овца — по-русски.
                      Овца — по-болгарски.
                      Овца — по-македонски.
                      Овца — по-сербски.
                      Owca — по-польски.
                      Ovcа — по-словенски.
                      Ovcа — по-словацки.
                      Ovce — по-чешски.
                      Oveja — по-испански.
                      Ovella — по-каталански.
                      Ovelha — по-португальски.
                      Ovino — по-итальянски.
                      Ovis — по-латыни.
                      Ovins — по-французски.
                      Avis — по-литовски.
                      Avikā — на санскрите.
                      Авечка — по-белорусски.
                      Вівця — по-украински.

                      Какой-то из языков здесь лишний.
                      Ответить
                      • Тем более во времена Речи Посполитой она поёбывала часть восточной европки. Возможно оттуда и сходства.
                        Ответить
                      • > русски
                        > индоевропейских
                        У славяноариев гены так подобраны, знаем, не трудись.
                        https://i.obozrevatel.com/2014/3/13/461585.jpg


                        Кстати, вы будете смеяться, но скрепа про славянское братство придумана еще при николашке палкине вместе с прочей хуитой типа народности и прослабия.
                        Ответить
                  • маратонки — кроссовки
                    скандал [cканда́ў] — скандал
                    недостатък — недостаток
                    диария — понос
                    бледен — бледный
                    грешка — ошибка
                    прищявка [приштя́фка] — причуда
                    време — время
                    череп — череп
                    дажба — паёк
                    гара — вокзал
                    килим — ковёр
                    мангизи — бабло
                    дебел — толстый
                    хотел [хуте́ў] — гостиница
                    стая — комната
                    утре — завтра
                    вратовръзка [вратувры́ска] — галстук
                    огледало [углэда́ўу] — зеркало
                    дори — даже
                    плодове [пўудовэ́] — фрукты
                    чадър [тшады́р] — зонт
                    направо — прямо
                    чукам — стучать
                    магазин — магазин
                    бозайници [буза́йнитси] — млекопитающие
                    забрана — запрет
                    забравям — забыть
                    Ответить
                • За Свободную Сирию болею.

                  ШАМ. Русские бежали со второй базы в Хама. Сбит российский самолет Су-22
                  Ответить
      • Ты вызываешь ощущение умного питуха

        Скажи, зачем может быть нужен такой код
        return Promise.resolve(view).then((view) => {....


        чем он отлитчается от работы с view напрям напрямую?
        Ответить
        • Чойто ты стал Джейсоном интересоваться? Он же говно, как и весь веб.
          Ответить
          • инью, ты так и не ответил на чем ты теперь пишеш
            Ответить
              • С++20? питон 3.8?

                поздравляю тебя кстати
                еси решишь хуиз на джангу переписать могу отревюить и обосрать твой код если хочешь
                Ответить
                • Да, нет.

                  Чем Джанга лучше WordPress? Такое же тормознутое говно?
                  Ответить
                  • совсем не тормознутое если вдумичиво работать с орм
                    там есть дебаг тулбар чтобы профилировать

                    и кстати это не цмс а фреймворк
                    Ответить
                  • > тормознутое
                    Ну тогда у тебя есть один выход - переписать в конпайлтайм метушню на крестах.
                    Ответить
                      • Давайте писать сайты на логистических цепях железнодорожнвх локомотивов
                        Ответить
                    • Это типа на каждый запрос вызывается «g++», который компилирует бинарник, выводящий в stdout содержимое ответа?
                      Ответить
                      • Ну да. А для повторяющихся запросов можно реюзать уже собранный бинарь.
                        Ответить
                    • Кстати о метушне, в gforth-овском сервере есть возможность использовать форт как шоблонизатор:
                      \ Use Forth as server-side script language             26mar00py
                      
                      : $> ( -- )
                          BEGIN  source >in @ /string s" <$" search  0= WHILE
                              type cr refill  0= UNTIL  EXIT  THEN
                          nip source >in @ /string rot - dup 2 + >in +! type ;
                      : <HTML> ( -- )  ." <HTML>" $> ;
                      https://github.com/forthy42/gforth/blob/master/httpd.fs

                      Но оно только в режиме интерпретации работает. Именно поэтому я за http://govnokod.ru/24819
                      Ответить
                      • Кстати, тут мы видим нестандартное использование слов потока управления:
                        BEGIN  раз  WHILE  два  UNTIL  три  THEN
                        Что происходит:
                        - BEGIN во время конпеляции оставляет на стеке потока управления адрес начала цикла ( C: -- dest );
                        - WHILE во время конпеляции конпелирует неразрешённый условный переход вперёд, кладёт его адрес на стек потока управления, но адрес начала цикла оставляет на вершине ( C: dest -- orig dest ),
                        типичное его использование —– цикл с предусловием: "BEGIN ... WHILE ... REPEAT", REPEAT здесь конпелирует безусловный переход назад ( C: orig dest -- orig ), и разрешает переход в перёд ( C: orig -- );
                        - UNTIL во время конпеляции принимает на стеке потока управления адрес, и конпелирует условный переход назад ( C: dest -- ),
                        типичное использование —– цикл с постусловием: "BEGIN ... UNTIL";
                        - THEN во время конпеляции разрешает переход вперёд ( C: orig -- ),
                        типичное использование —– ветвления: "... IF ... THEN" и "... IF ... ELSE ... THEN".
                        На сишке приблизительным аналогом будет:
                        do {  // BEGIN
                            раз1;
                            if (!раз2) goto THEN;  // WHILE
                            два1;
                        } while (!два2);  // UNTIL
                        три;
                        THEN:  // THEN
                        Ответить
        • Работа с view напрямую выглядит слишком просто. Работодатель посмотрит в код и решит, что программисту можно и зарплату снизить, а если он бузить начнёт — так уволим и найдём нового, такой простой код даже студент за еду написать сможет. А вот если в коде будут промисы, асинхронность, монады, функциональное программирование, лямбды, стрелочки — вот тогда сразу будет видно, что программист умный, и увольнять такого нельзя — себе дороже!
          Ответить
        • наверное вызывающий код асинхронный и это одна из веток функции, а остальные возвращают честные промисы
          Ответить
  • А знаешь способ по относительному урлу получить абсолютный?
    Ответить
        • Между тем, в Яунде 20 градусов тепла в жопаскрипт завезли модули прямо в браузер

          <script type="module">
          import {admin} from './admin.js';


          с построением дерева депенденсов и загрузкой!
          А кто про это знает?
          Никто(
          Ответить
          • Не нужно людям морочать голову, это давно известно!
            Ответить
          • А зачем это нужно? Разве не оптимальнее вконпиливать всё в один файл?
            Ответить
            • Зачем вообще развивать жс как язык? Это же формат для исполняемого кода, в который конпеляют и линкуют код на нормальных языках.
              Ответить
              • Нормальные языки - это кофе скрипт и тупо скрипт и хуётлин?
                Ответить
                • Тип того. Ну и питон вроде тоже можно туда конпелять.
                  Ответить
                  • Пускай роскомговно пишет на этих языках. Многие текут именно от JS.
                    Ответить
                    • Прикол в том, что даже жс (ES6) одно время конпеляли в жс.
                      Ответить
                      • Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду, выполняемая компилятором.

                        А здесь как был язык высокого уровня, так и остался язык высокого уровня...
                        Ответить
                        • Транспайлер — тип компилятора, который использует исходный код программы, написанной на одном языке программирования, в качестве исходных данных и производит эквивалентный исходный код на другом языке программирования.
                          Ответить
                          • А "J" к какому типу принадлежит?
                            Ответить
                          • Как бы ты назвал компилятор низкогоуровневово языка в высокоуровневый?

                            Например, компилятор си в питухскрипт
                            Ответить
                            • Не знаю, так же транспайлер. Никогда не читал сконпелированный в js сишкокод. Скорее всего они работают как и все транспайлеры, т.е. на выходе будет говнистый жс имитирующий сишные каказатели массивами и прю поебень.

                              А ведь когда-то высокоуровневым языком называли то, что было обстругировано от системы команд конкретного процессора, и не имело говносинтаксиса отсосемблера типа:
                              everybody
                                  mov your, feet
                                  and feel, united
                                  oh
                                  oh
                                  oh
                              Фортран, Си, Форт считались высокоуровневыми. А теперь высокоуровневым считаются языки в которых нет ебли сука зателями и нет ручного управления паматью (может, скриптоёбы не выговаривают "сверхвысокоуровневые"?). Нам препод горовила, что C, Forth это языки среднего уровня, а тперь их записали в низкоуровневые. Какого тогда уровня отсосемблеры? Что будет дальше?
                              Ответить
                              • > Что будет дальше?
                                Технологическая сингулярность.
                                Ответить
                              • "s" Forth - язык для калькуляторов
                                Ответить
              • Вы перепутали бинарный формат WebAssembly с исходным кодом на JavaScript.

                Как тут принято говорить... какой багор((( какой ънскил)))
                Ответить
        • Очередной петух = разумный петух?
          Ответить
          • Очередной петух == разумный петух? { блеать }
            Ответить
              • в приличнных языках тренарника неи
                if(очередной_петух ==разумный_петух) then блеять() else прыщебляди.соснули()
                Ответить
                • В приличных языках тренарник и есть ветвление, ну или наоборот.

                  Algol-68, Forth и подобные ему, Kotlin.
                  Ответить
      • И правильно сделает, иначе появится коллизия (представьте у вас была строка `<br>\x0a<br>`)
        Ответить
  • КАЗАХСТАН. В Алматы восстание. Тысячи людей заполнили улицы и площади города ВИДЕО

    https://www.youtube.com/watch?v=kBcrc39IHKU
    Ответить
  • вы тут петухи ёбаные про чё вообще кукарекаете....?
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8