Allora sul quarto punto mi sono espresso male io, intendevo dire in che parte del file html carichi lo script , se sull'head oppure prima della chiusura del tag body. Se lo script è caricato sull'head ricorda che va inserito la priprietà "defer".
	codice:
	<script defer>
...
</script>
 
	codice:
	<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input name='dc' id='dc' type='text' value='parole-uno' size='60'>
    <input name='dc' id='dc' type='text' value='parole-due' size='60'>
    <input name='dc' id='dc' type='text' value='parole-tre' size='60'>
    <input name='dc' id='dc' type='text' value='parole-quattro' size='60'>
    <input name='dc' id='dc' type='text' value='parole-cinque' size='60'>
    <textarea name="tag" cols="80" rows="23">
parole-uno
parole-due
parole-tre
parole-quattro
parole-cinque
</textarea>
    <button data-open>open modal</button>
    <script>
        window.addEventListener("DOMContentLoaded", function () {
            const inputs = document.querySelectorAll('input[name="dc"]')
            const tarea = document.querySelector('textarea[name="tag"]')
            Array.from(inputs).forEach(function (input) {
                input.addEventListener('click', function (e) {
                    const index = tarea.value.indexOf(e.target.value)
                    const len = index + e.target.value.length
                    tarea.focus()
                    tarea.setSelectionRange(index, len)
                })
            })
        })
    </script>
</body>
</html>
Questo è l'esempio completo, verifica se eveventualemente trovi.