Ответы пользователя по тегу JavaScript
  • Как правильно использовать регулярные выражения для replace?

    @Myateznik
    Всё это в наше время на самом деле можно и упростить (js harmony/es6):
    var name = 'lola';
    var place = 'city';
    var str = `my name is ${name} and I live in ${place}`;
    Ответ написан
    Комментировать
  • PreviousSibling FirstElement как такой метод называется и есть ли он в нативе?

    @Myateznik
    Всё указанное ниже нативно присутствует в браузерах:
    element.previousElementSibling (элемент перед текущим в родительском), element.previousSibling (нода перед текущим элементом в родительском, чаще всего #text).
    element.firstElementChild (первый элемент в текущем), element.firstChild (первая нода в текущем, так же чаще всего #text)
    Ответ написан
    Комментировать
  • Html 5 video как делать видео на весь блок?

    @Myateznik
    Задача проста и как уже отметил Андрей решается css свойством:
    video {
      object-fit: cover;
    }
    Ответ написан
    Комментировать
  • Что плохого в навешивании событий на инпуты?

    @Myateznik
    Для такого случая лучше использовать обычный css код:
    #formElement input:focus {
        outline: solid 2px red;
    }

    Не делайте лишних велосипедов, когда это уже давным давно сделано.
    Это не эффективно из-за того, что в случае с css стилями при фокусе браузер просто нарисует элемент основываясь на уже известных данных тем самым происходит просто перерисовка тайлов, а в случае с js происходит изменение DOM, браузер снова проходит по всему дереву DOM, далее браузер ищет стили в CSSOM и только потом отрисовывает изменившееся, пока браузер совершает это путешествие возникает некий провис.
    Ответ написан
  • Почему не добавляется в canvas изображение?

    @Myateznik
    В вашем случае это не работает из-за соображений безопасности, заложенных в браузерах, для работы требуется сервер.
    Ответ написан
    1 комментарий
  • Эмуляция события с local storage работает в Chrome, но не работает в Firefox - что не так?

    @Myateznik
    Правильная конструкция функции initStorageEvent:
    void initStorageEvent(
      in DOMString typeArg,
      in boolean canBubbleArg,
      in boolean cancelableArg,
      in DOMString keyArg,
      in DOMString oldValueArg,
      in DOMString newValueArg,
      in DOMString urlArg,
      in nsIDOMStorage storageAreaArg
    );

    Рабочий пример:
    var e = document.createEvent( 'StorageEvent' );
    e.initStorageEvent('storage', true, false, 'key', 'oldValue', 'newValue', location.href, window.localStorage);
    window.dispatchEvent(e);

    Подробнее на Mozilla Developer Network (MDN), а также спецификация на WHATWG
    Ответ написан
    Комментировать
  • Есть ли возможность передать данные между двумя пользователями без сервера?

    @Myateznik
    algebris предложил хорошие варианты, а вообще желательно углубиться в спецификацию WebRTC там действительно есть такая возможность. Естественно требуется сигнальный сервер для соединения браузеров... Но если полазить по сети можно найти целый список таких бесплатных серверов, можно на Google App Engine запустить свой. А если компьютеры в 1 сети, то даже сигнальный сервер не требуется т.к. в таком случае роутер сети будет собственно и являться сигнальным сервером.
    Ответ написан
    Комментировать
  • Как узнать, кто трогал куки?

    @Myateznik
    Политика безопасности современных браузеров запрещает страницам одного домена получать Cookie данные другого домена. Определить, что пользователь ВК или ФБ посещал сайт можно серверным кодом считывая Referer заголовок запроса.

    Есть 1 способ читать Cookie (не HTTP-only) другого домена , но он может быть уже исправлен. Если домены являются доменами 3-го уровня на пример: domain1.example.com и domain2.example.com, то и первый домен и второй получают доступ к Cookie данным домена example.com т.к. технически являются поддоменами домена example.com (технически один домен - один сайт). Хостинг провайдеры предоставляющие домен 3-го уровня могут просто при каждом обращении к серверу стирать Cookie данные для домена 2-го уровня в нашем примере домен 2-го уровня это example.com
    Ответ написан
    Комментировать
  • Для чего нужен Shadow DOM?

    @Myateznik
    Shadow DOM - Теневая модель документа работает независимо (более-менее) друг от друга. Служит для создания custom UI-компонентов (тегов). Также является основой стандартных элементов HTML5 таких как:
    <video></video>
    <audio></audio>
    <input>
    и многих других.
    Ответ написан
    Комментировать