Я не могу выбрать текст из всплывающей подсказки сообщения об ошибке на Mac и IntelliJ CE 2018, но кто-то из связанного бита указал, что Alt + Mouse Click копирует текст в буфер обмена (это означает, что вы можете вставить и получить текст), и это сработало для меня.
Вот решение jQuery.
Событие щелчка вызывается кнопкой «Копировать все». Адреса электронной почты собираются путем извлечения текстовых значений любых элементов с помощью класса «emails», а затем передаются в функцию с именем «copyToClipboard», которая создает временную скрытую текстовую область для выбора и копирования значений электронной почты. Он должен работать во всех браузерах.
РЕДАКТИРОВАТЬ: Я обновил код, чтобы позволить вам копировать данные из любого столбца. Вам просто нужно указать целевой класс и передать его в качестве атрибута данных. Вероятно, вы могли бы просто указать номер столбца и искать данные вложенных таблиц без необходимости присваивать классы, но, к сожалению, это за пределами моего знания JavaScript, плюс ссылки на href в столбце электронных писем могут сделать это непросто.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Database Results</title>
</head>
<body>
<table width="0%" border="2" cellspacing="3" cellpadding="3">
<tbody>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
<th>Names - <button class="CopyColumn" data-target=".names">Copy All</button></th>
<th>Emails - <button class="CopyColumn" data-target=".emails" data-separator="; ">Copy All</button></th>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name One</td>
<td><a href="mailto:email1@email.com" class="emails">email1@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Two</td>
<td><a href="mailto:email2@email.com" class="emails">email2@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Three</td>
<td><a href="mailto:email3@email.com" class="emails">email3@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Four</td>
<td><a href="mailto:email4@email.com" class="emails">email4@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Five</td>
<td><a href="mailto:email5@email.com" class="emails">email5@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Six</td>
<td><a href="mailto:email6@email.com" class="emails">email6@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Seven</td>
<td><a href="mailto:email7@email.com" class="emails">email7@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Eight</td>
<td><a href="mailto:email8@email.com" class="emails">email8@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Nine</td>
<td><a href="mailto:email9@email.com" class="emails">email9@email.com</a></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td class="names">Name Ten</td>
<td><a href="mailto:email10@email.com" class="emails">email10@email.com</a></td>
</tr>
</tbody>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(".CopyColumn").click(function(){
var btn = $(this);
// Disable the button whilst the clipboard copy is performed
btn.prop("disabled", true);
var colData = "";
// Use a line break to seperate the column data if no separator is specified
var colSeparator = (btn.data("separator")===undefined) ? "\n" : btn.data("separator");
// Loop through all elements with the target class
$(btn.data("target")).each(function() {
// Collect the column data and add the separator
colData += $(this).text() + colSeparator;
});
// Copy the column data to the clipboard
copyToClipboard(colData.trim());
// Make a copy of the button text
var btn_txt = btn.html();
// Change the button text to "Copied"
btn.html("Copied");
// Revert the button text after 1.5 seconds
setTimeout(function(){
btn.html(btn_txt);
// Enable the button
btn.prop("disabled", false);
},1500);
});
});
function copyToClipboard(text) {
if (window.clipboardData && window.clipboardData.setData) {
// IE specific code path to prevent textarea being shown while dialog is visible.
return clipboardData.setData("Text", text);
} else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
var textarea = document.createElement("textarea");
textarea.textContent = text;
textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in MS Edge.
document.body.appendChild(textarea);
textarea.select();
try {
return document.execCommand("copy"); // Security exception may be thrown by some browsers.
} catch (ex) {
console.warn("Copy to clipboard failed.", ex);
return false;
} finally {
document.body.removeChild(textarea);
}
}
}
</script>
</body>
</html>
JSfiddle: https://jsfiddle.net/j4r9sxwt/
Единственное изменение, которое вам необходимо внести в свой код ASP:
RESPONSE.WRITE "<td><a href='mailto:"&rsMembers("Email")&"' class='emails'>" & rsMembers("Email") & "</a></td>"& vbCrlf