Как я могу скопировать идентификатор ссылки по клику, используя JS / React? - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть тег ссылки следующим образом:

<a onClick={this.linkClicked} id='some_string'>
  <svg className ='medd_link' xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"> ... </svg>
</a>

Когда пользователь нажимает на ссылку, я хочу, чтобы идентификатор 'some_string' скопировался в буфер обмена.

Как бы это реализовать ?

linkClicked = (event) => {
  // const element = document.getElementById("myInput");
  // we are using react so we will work with the virtual DOM not the actual DOM
  // event.target maybe?
  // element.select();
  // element.setSelectionRange(0, 99999)
  document.execCommand("copy");

  // why does event.target point to the svg element?
  alert("Copied the text: ");
}

Обновление

Первая странная вещь, которую я заметил, это то, что event.target указывает на элемент <svg>, а не на элемент <a>, который я нужен доступ к.

1 Ответ

2 голосов
/ 23 февраля 2020

onClick = (event, text) => {

  event.preventDefault();
  input = document.createElement("input");
  input.style="position:absolute;opacity:0";
  input.value = text;
  document.body.append(input);
  input.select();
  document.execCommand("copy");
  input.remove();
  alert("Copied the text: " + text);
}
<a id='some_string' onclick="onClick(event, this.id)">click here</a>
...