Нажмите кнопку, чтобы выбрать текст в поле ввод не работает

#javascript

#javascript

Вопрос:

текст не выделен в js, перепробовал все методы. select() и btn.select() не выделять текст в текстовом поле

         var in = document.getElementById("in");
        var btn = document.getElementById("btn");
    
        btn.onclick() = function(){
            in.focus();
            in.select();
            in.setSelectionRange(0,9999);
             document.execCommand("copy");
        }; 
     <body>
        <input id="in" type="text">
        <button id="btn" >Copy </button>
    </body> 

Комментарии:

1. Как этот код может выполняться, когда у вас есть переменная с именем in ?

2. на самом деле я новичок в js, я работаю в python ML, сделал мини-автоматизацию, так что …. надеюсь, вы понимаете мою ситуацию!

Ответ №1:

in является зарезервированным ключом в javascript, поэтому не может его использовать, и вы должны удалить () его после onclick, когда хотите присвоить ему значение.

             var inputField = document.getElementById("in");
            var btn = document.getElementById("btn");
        
            btn.onclick = function(){
                inputField.focus();
                inputField.select();

                inputField.setSelectionRange(0, 99999)
                document.execCommand("copy");
            };
            
            var linkTag = document.getElementById("link");
            var btnLink = document.getElementById("btn-link");

        btnLink .onclick = function(){
            const range = document.createRange();
            range.selectNode(linkTag );
            const selection = window.getSelection();
            selection.removeAllRanges();
            selection.addRange(range);

            document.execCommand('copy');
        }; 
         <body>
            <div>
                <input id="in" type="text">
                 <button id="btn" >Copy </button>
             </div>
            <div>
                 <a href="google.com" id="link">google.com</a>
                 <button id="btn-link" >Copy </button>
             </div>
        </body> 

Комментарии:

1. хорошо, но теперь я хочу скопировать текст из «a href», как это сделать? <тело> <a href=» google.com » id=»в»>google.com </a> <идентификатор кнопки=»btn» >Копировать </button> </body> <тип сценария=»текст / javascript»> var InP = document.getElementById(«in»);var btn = document.getElementById(«btn»); btn.onclick = функция(){ InP.focus(); InP.select(); InP.setSelectionRange(0,9999); document.execCommand(«копировать»); }; </script>

2. Я добавил способ сделать это с помощью href. попробуйте сейчас.

Ответ №2:

В вашем коде есть 2 проблемы:

  1. in это зарезервированное слово в js, поэтому вы не можете использовать его в качестве имени переменной.
  2. Вы ошибаетесь в настройке события onclick для кнопки
 btn.onclick() = function(){ // there should not have '()' after onclick
...
 

Вы должны проверить ошибку на консоли при выполнении кода.