Uso css para expandir/contraer contenedores (ExpandableBoxContainer) dentro de un contenedor principal (SnippetContainer). Hay un botón en cada contenedor expandible para copiar el código puesto en el área de texto de solo lectura con este código (#248 - #263):
/* Highlight - Copy to Clipboard */ <script> document.getElementById("SnippetContainer").addEventListener("click", function(e) { let tgt = e.target.closest("input"); if (tgt && tgt.matches(".copyBtn")) { const textarea = tgt.nextElementSibling; textarea.select(); tgt.value = 'COPIED. Paste in SOURCE view!!!'; document.execCommand('copy') } else tgt = e.target.closest("textarea"); if (tgt.matches("[name=code]")) tgt.select() }) </script>La estructura de la página es más o menos así:
<div id="SnippetContainer"> <div class="ExpandableBoxContainer"> <input...> <textarea> ...code snippet... </textarea> </div> <div class="ExpandableBoxContainer"> <input...> <textarea> ...code snippet... </textarea> </div> </div> Al expandir CodeBoxContainer, la consola devuelve: 
No puedo encontrar la razón y cualquier solución a la misma.
Obtiene el error en if (tgt.matches("[name=code]")) tgt.select() si tgn es null .
tgn es null si hace clic en SnippetContainer o en un descendiente de este que no es input ni textarea .
Debería cambiar if (tgt.matches("[name=code]")) tgt.select() a if (tgt && tgt.matches("[name=code]")) tgt.select() para hacer el error desaparece.
Pero no está del todo claro si la lógica que tiene en su código es realmente correcta, al menos parece muy sospechoso.