• Скопировать текст?

    document.execCommand("copy") копирует то, что сейчас выделено.
    Если текст на странице не выделен, то и ничего не скопируется.

    Можно программно выделить текст на странице, а затем вызвать document.execCommand("copy")
    Но это дичь, какая-то.
    Более того, document.execCommand() вышла из употребления.

    Так что можно, как белый человек, использовать navigator.clipboard.writeText()

    navigator.clipboard.writeText("123")
    Ответ написан
    Комментировать
  • Как правильно назначить стили для "echo"?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Я вот с wordpress не работаю вообще. Но за полминуты нашел решение https://developer.wordpress.org/reference/function... – четвертый параметр, атрибуты для тега.
    Ответ написан
    Комментировать
  • Безопасно ли отправлять данные по HTTPS?

    vabka
    @vabka Куратор тега Веб-разработка
    Токсичный шарпист
    Если злоумышленник установит свой сертификат на компьютер жертвы, то он сможет перехватить, расшифровать, и зашифровать трафик так, что ни сервер, ни пользователь не заметят.

    Если злоумышленник не установит свой сертификат, то пользователь получит соответствующее сообщение, перед тем, как сайт будет открыт. Если пользователь проигнорирует все предупреждения и пройдёт через много уровней "обороны" с нажатием кнопок "да, я уверен, пустите меня", то злоумышленник точно также сможет перехватить.

    В остальном всё безопасно. Вдвойне безопасно, если клиент проверяет, что подключение произошло именно с тем сертификатом, который ожидается.

    В целом https-у вполне доверяют банковскую и всякую секретную государственную информацию (в этом случае вместо обычных сертификатов и шифрования используют специальные, но всё же)
    Ответ написан
    Комментировать
  • Как удалить кнопку wp mini cart и изменить ссылку?

    loli89
    @loli89 Автор вопроса
    Решено. Разобрался как написать нужный мне код.

    //Текст корзины
    add_filter('gettext', 'change_checkout_btn');
    add_filter('ngettext', 'change_checkout_btn');
    
    //function
    function change_checkout_btn($checkout_btn){
      $checkout_btn= str_ireplace('Shopping cart', 'Корзина', $checkout_btn);
      $checkout_btn= str_ireplace('close', 'закрыть', $checkout_btn);
      $checkout_btn= str_ireplace('Оформить заказ', 'Оформить заказ', $checkout_btn);
      return $checkout_btn;
    }
    
    //Текст корзины
    
    add_action( 'woocommerce_widget_shopping_cart_buttons', function(){
    	// Removing Buttons
    
    	remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    	
    	// Adding customized Buttons
    	add_action( 'woocommerce_widget_shopping_cart_buttons', 'custom_widget_shopping_cart_button_view_cart', 10 );
    	}, 1 );
    	
    	// Custom cart button
    	function custom_widget_shopping_cart_button_view_cart() {
    	$original_link = wc_get_cart_url();
    	$custom_link = home_url( 'http://metallika.by/#contact' ); // HERE replacing cart link
    	echo '<a href="' . esc_url( $custom_link ) . '" class="button wc-forward">' . esc_html__( 'View cart', 'woocommerce' ) . '</a>';
    	}
    Ответ написан
    Комментировать
  • Как сделать псевдоэлемент адаптивным?

    @wadowad
    Переведите обсалютные размеры в относительные:
    width: 656px; => width: 100%;
    height: 471px; => padding-top: 72%;
    Ответ написан
    3 комментария
  • Почему название свойства value нельзя заменить на просто v или что-либо еще?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Потому что defineProperty ожидает в третьем аргументе объект с ключом value. Что тут ещё можно добавить? Можно с тем же успехом спросить почему код не работает, если его написать на бумажке.
    Ответ написан
    Комментировать
  • Как при включении одного муз.файла выключать другой?

    black1277
    @black1277
    Вольный стрелок
    Вот так можно, к примеру
    <body>
    <p>Название</p>
    <audio src='audio/Dich.mp3' controls audioplay></audio>
    <p>Название</p>
    <audio src='audio/Flower.mp3' controls audioplay></audio>
    <p>Название</p>
    <audio src='audio/Dich.mp3' controls audioplay></audio>
    <p>Название</p>
    <audio src='audio/Flower.mp3' controls audioplay></audio>
    <p>Название</p>
    <audio src='audio/Dich.mp3' controls audioplay></audio>
    <p>Название</p>
    <audio src='audio/Flower.mp3' controls audioplay></audio>
    <script>
      const aud = document.querySelectorAll('audio')
      Array.from(aud).map(el => el.addEventListener('play', () => {
        const played = document.querySelector('[data-play="true"]')
        if(played && played !== el) {
          played.pause()
          played.removeAttribute('data-play')
        }
        el.dataset.play = 'true'
      }))
    </script>
    </body>
    Ответ написан
    4 комментария
  • Как подключать шрифты прямо из VS Code?

    @strelok011
    Для VSCode есть плагин гуглошрифтов https://marketplace.visualstudio.com/items?itemNam...

    А по поводу "всех остальных" - есть такая проблема как лицензионная чистота шрифтов. Если заказчик приобрел шрифт - он его предоставит с инструкцией по подключению в проект.

    Ну и дизайнеру, который использует больше 2-х шрифтов на сайте надо кой чего отстрелить и отправить на переподготовку.

    Не забывайте, что каждый шрифт может до нескольких МБ весить, особенно если пытаться использовать все его начертания.
    А для пиратских шрифтов такие сервисы никто не напишет, может вылезти больно и дорого :)
    Ответ написан
    Комментировать
  • Как при наведении курсором на изменять цвет сразу у двух?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Как при наведении курсором на изменять цвет сразу у двух?

    Начните с простого:
    ответьте на вопрос, почему это вообще две ссылки?

    После этого ссылка станет одной и проблема решится сама собой.
    Ответ написан
    3 комментария
  • Проблема с ноутбуком?

    @Mikeoldfield
    Сетевой инженер / системный администратор
    "При разборке посыпались мелкие детальки." - мне кажется, в самом вопросе кроется ответ )))))
    Ответ написан
    Комментировать
  • Github не работает - есть решения?

    vabka
    @vabka
    Токсичный шарпист
    Ситуация в Украине здесь ни причём.
    Просто сервисы гитхаба легли отдохнуть

    И в посте таки явно написано, что никаких санкций против разработчиков не будет)
    Ответ написан
    1 комментарий
  • Как распарсить такой JSON?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    но я никак не могу с ним работать, я пытался пропускать его через функции нормализации, но ни в какую

    А не надо бездумно совать свою строку какому-то левому коду и ожидать что он всё за тебя сделает.
    Надо проанализировать что ты получаешь и только потом начинать что-то делать.
    В данном случае видно две очевидные проблемы:
    1. В строке отсутствуют все закрывающие символы, которые должны быть в конце строки - кавычки, фигурные скобки, квадратные скобки - всё потеряли. В первую очередь надо найти того кто это написал, ткнуть его носом и громко и чётко произнести: "кто накодил? Кто накодил, а?", после чего посадить его исправлять серверную часть.
    2. Внутренний объект зачем-то закодирован в json второй раз. Тут уже можно не кричать, а дать лёгкого добродушного пинка backend-разработчику, но таким образом чтоб после этого его тело двинулось в сторону клавиатуры, используя которую, он исправит и этот косяк.

    const weirdString  = fetch() // здесь получаешь свою странную и  корявую строку
    const jsonEncoded = weirdString + '\\"}]}]"}' // для примера я вручную посчитал всё закрывающее барахло, но, возможно что для этого надо будет написать отдельную функцию. Ну, тут сам справишься, я думаю
    const decodedOnce = JSON.parse(jsonEncoded) // раскодируем первый раз
    const decodedTwice = JSON.parse(decodedOnce['21']); // раскодируем второй раз внутренний объект.
    Ответ написан
    Комментировать
  • Какая cms лучше всего подойдет для создание более 100 000тыс. страниц?

    Sanes
    @Sanes
    Любая с поддержкой MySQL/PostrgreSQL
    Ответ написан
    Комментировать
  • Как вызвать event для одного из динамических элементов с одинаковым классом?

    Megas
    @Megas
    Ваш код абсолютно рабочий, вот тоже самое на jsfidle: https://jsfiddle.net/toster/o8jhnbrw/1/ и как видите только первый элемент получает event. Так что ищите проблему в другом месте.
    Ответ написан
    1 комментарий
  • Как вывести в массив диапазон дат?

    0xD34F
    @0xD34F Куратор тега JavaScript
    function getDates(startStr, endStr) {
      const startDate = new Date(startStr.split('.').reverse().join('-'));
      const endDate = new Date(endStr.split('.').reverse().join('-'));
      const dates = [];
    
      for (; startDate <= endDate; startDate.setDate(startDate.getDate() + 1)) {
        dates.push(startDate.toLocaleDateString('ru-RU', {
          year: 'numeric',
          month: '2-digit',
          day: '2-digit',
        }));
      }
    
      return dates;
    }
    Ответ написан
    5 комментариев
  • Как при заполнении 4 input выполнить функцию js?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const inputs = [...document.querySelectorAll('.input')];
    inputs.forEach(n => n.addEventListener('input', onInput));
    
    function onInput({ target: t }) {
      if (t.value.length === t.maxLength) {
        t.nextElementSibling?.focus();
      }
    
      if (inputs.every(n => n.value.length === n.maxLength)) {
        // здесь дёргаете свою функцию
      }
    }
    Ответ написан
    2 комментария
  • Почему код не работает?

    А нечего тулить стрелочные функции если не понимаешь как они работают.
    Ответ написан
    Комментировать
  • Почему код не работает?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Отсутствие связывания с this у стрелочных функций.

    Решение: использовать аргумент функции — событие.
    Ответ написан
    Комментировать
  • Почему не срабатывает код из короткого видеоурока?

    Во-первых, в HTML у вас много глупых ошибок: тег начинается с , а заканчивается . Тоже самое и для и
    Этот HTML должен выглядеть так:
    <!DOCTYPE html>
    <head>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
      <div class="wrapper">
        <header class="header">Header</header>
        <main class="main">Main</main>
        <footer class="footer">Footer</footer>
      </div>
    </body>
    </html>


    Во-вторых, добавьте в CSS к селектору body ещё и селектор html как в коде ниже.
    html, body {
      height: 100%;
      margin: 0;
      font-family: Helvetica;
      font-size: 25px;
    }
    
    .wrapper {
      min-height: 100%; 
      display: flex;
      flex-direction: column;
    }
    
    .header {
      background-color: lightsalmon;
      text-align: center;
      padding: 30px;
    }
    
    .main {
      text-align: center;
      padding: 30px;
      flex: 1 1 auto;
    }
    
    .footer {
      background-color: lightseagreen;
      text-align: center;
      padding: 30px;
    }


    Тогда всё заработает.
    Для полного счастья вот вам ссылка на выполненный код - https://codepen.io/Comrues/pen/GRmYqjV

    Не забудьте сделать этот пост ответом.
    Ответ написан
    5 комментариев