Estoy tratando de copiar el texto del correo electrónico en html, ese texto del correo electrónico está en una etiqueta href.
Significa que cuando un usuario hace clic en el icono cerca del texto del correo electrónico, debe copiarse solo el valor del correo electrónico, pero no funciona.
En lugar de solo enviar un correo electrónico, mi código está copiando el texto completo de la función js, a continuación se muestra el código completo y también muestra lo que viene cuando hacemos clic en el icono de copia.
A continuación se muestra el código completo.
<td class="col-md-3 contactTable"> <a href="mailto:@Model.UsersEmail[item.ID]" id="a1">@Model.UsersEmail[item.ID]</a> <i class="fa fa-copy" onclick="copyToC('#a1')" style="font-size:17px;"></i> </td> <script type="text/javascript"> function copyToC(element) { var $temp = $("<input>"); $("body").append($temp); $temp.val($(element).text()).select(); document.execCommand("copy"); $temp.remove(); }A continuación se copia el texto cuando hacemos clic en el icono de copia:
<script type="text/javascript"> function copyToC(element) { var $temp = $("<input>"); $("body").append($temp); $temp.val($(element).text()).select(); document.execCommand("copy"); $temp.remove(); }En lugar del botón, simplemente agregue su icono.
El siguiente código es para copiar una sola dirección de correo:
function copyToC() { var copyText = document.getElementById('a1').innerHTML; document.addEventListener('copy', function(e) { e.clipboardData.setData('text/plain', copyText); e.preventDefault(); }, true); document.execCommand('copy'); console.log('copied text : ', copyText); alert('copied text: ' + copyText); } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <td class="col-md-3 contactTable"> <a href="mailto:abc@gmail.com" id="a1">def@gmail.com</a> <button onclick="copyToC()" >Copy</button> </td>El siguiente código copiará cada dirección de correo de cada fila:
function copyToC(element) { var aId = element.previousElementSibling.id; var copyText = document.getElementById(aId).innerHTML; document.addEventListener('copy', function(e) { e.clipboardData.setData('text/plain', copyText); e.preventDefault(); }, true); document.execCommand('copy'); console.log('copied text : ', copyText); alert('copied text: ' + copyText); } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <td class="col-md-3 contactTable"> <a href="mailto:abc@gmail.com" id="a1">abc@gmail.com</a> <button onclick="copyToC(this)" >Copy</button> </td> <td class="col-md-3 contactTable"> <a href="mailto:def@gmail.com" id="a2">def@gmail.com</a> <button onclick="copyToC(this)" >Copy</button> </td> <td class="col-md-3 contactTable"> <a href="mailto:ijk@gmail.com" id="a3">ijk@gmail.com</a> <button onclick="copyToC(this)" >Copy</button> </td>Creo que no se puede obtener el valor de un enlace. pero sí, puede obtener el valor de un campo de entrada.
Así.👇🏻
<input type="text" placeholder="Type something..." id="myInput"> <button type="button" onclick="getInputValue();">Get Value</button> <script> function getInputValue(){ // Selecting the input element and get its value var inputVal = document.getElementById("myInput").value; // Displaying the value alert(inputVal); } </script>