Загрузка...

Знатоки JavaScript, помогайте

Тема в разделе Frontend создана пользователем Symbian_inactive472154 13 мар 2020. 194 просмотра

Загрузка...
  1. Symbian_inactive472154
    Symbian_inactive472154 Автор темы 13 мар 2020 Limits are only in your mind 82 26 июн 2018
    при нажатии на баттон, содержимое стронга копируется через раз, то с первого раза, то через два-три раза вообще, то есть нет даже связи никакой. Как сделать, чтобы при нажатии на баттон, содержимое стронга копировалось каждый раз?
    Код

    <strong class="text-primary" id="card">ЭТО НУЖНО СКОПИРОВАТЬ</strong><button id="button">КНОПКА КОПИРОВАТЬ</button>
    JS
    Код

    var content = document.querySelector("#card");
    var button = document.querySelector("#button");

    function copyToClipboard(el) {
    var range;
    if (document.selection) {
    range = document.body.createTextRange();
    range.moveToElementText(el);
    range.select().createTextRange();
    } else if (window.getSelection) {
    range = document.createRange();
    range.selectNode(el);
    window.getSelection().addRange(range);

    } else return;

    document.execCommand("copy");
    window.getSelection().removeAllRanges();
    }

    button.addEventListener('click', () => copyToClipboard(content));

     
  2. Giovanna38
    Giovanna38 13 мар 2020 22 26 фев 2018
    Это не скрипта баг
     
    1. Symbian_inactive472154 Автор темы
      Giovanna38, ещё раз проверил, в мозилле всё окей, в хроме через раз копирует
    2. Symbian_inactive472154 Автор темы
      Giovanna38, плюс мозилла добавляет card уже к тому, что было в буфере обмена. Было в буфере допустим "хуй", жму кнопку копировать номер карты, в буфере получается "номеркартыХУЙ"
  3. USDC
    Код
    window.onload = function()
    { var content = document.querySelector("#card");
    var button = document.querySelector("#button");

    function copyToClipboard(el) {
    var range;
    if (document.selection) {
    range = document.body.createTextRange();
    range.moveToElementText(el);
    range.select().createTextRange();
    } else if (window.getSelection) {
    range = document.createRange();
    range.selectNode(el);
    window.getSelection().addRange(range);

    } else return;

    document.execCommand("copy");
    window.getSelection().removeAllRanges();
    }

    button.addEventListener('click', () => copyToClipboard(content)); }
     
    1. Symbian_inactive472154 Автор темы
      @SCRASIA, ничего не изменилось :с
  4. Sadrez228
    Sadrez228 14 мар 2020 4 8 дек 2018
    Позырь на стеке как делать и все :vinny:
     
  5. Symbian_inactive472154
    Symbian_inactive472154 Автор темы 14 мар 2020 Limits are only in your mind 82 26 июн 2018
    Мб кто-то столкнётся с такой же проблемой, решил. Короче ебался весь день, придумал абсолютно тупорылое, но рабочее решение. Просто повесил три события вызова функции на батон, в итоге содержимое стронга копируется 10 из 10. получилось так:
    Код

    var content = document.querySelector("#card");
    var button = document.querySelector("#button");

    function copyToClipboard(el) {
    var range;
    if (document.selection) {
    range = document.body.createTextRange();
    range.moveToElementText(el);
    range.select().createTextRange();
    } else if (window.getSelection) {
    range = document.createRange();
    range.selectNode(el);
    window.getSelection().addRange(range);

    } else return;

    document.execCommand("copy");
    window.getSelection().removeAllRanges();

    }

    button.addEventListener('click', () => copyToClipboard(content));
    button.addEventListener('click', () => copyToClipboard(content));
    button.addEventListener('click', () => copyToClipboard(content));
    То чувство, когда ты программист от бога:cool_bun:
     
Top