copy-table.js 54 regels JavaScript
function selectTableGoogle(id, btnIdentifier) {
  var el = document.getElementById(id);
  var body = document.body, range, sel;
  if (document.createRange && window.getSelection) {
    range = document.createRange();
    sel = window.getSelection();
    sel.removeAllRanges();
    try {
      range.selectNodeContents(el);
      sel.addRange(range);
    } catch (e) {
      range.selectNode(el);
      sel.addRange(range);
    }
  } else if (body.createTextRange) {
      range = body.createTextRange();
      range.moveToElementText(el);
      range.select();
  }
  var btn = document.getElementById(btnIdentifier)
  try {
    var ok = document.execCommand('copy');
    if (ok) btn.innerHTML = 'Copied!';
    else btn.innerHTML = 'Error!';
  } catch (err) {
    btn.innerHTML = 'Browser not supported!';
  }
};

function selectTableMicrosoft(id, btnIdentifier) {
  var el = document.getElementById(id);
  const textarea = document.createElement('textarea');
  textarea.value = el.outerHTML;
  document.body.appendChild(textarea);
  textarea.select();
  var btn = document.getElementById(btnIdentifier)
  try {
    var ok = document.execCommand('copy');
    if (ok) btn.innerHTML = 'Copied!';
    else btn.innerHTML = 'Error!';
  } catch (err) {
    btn.innerHTML = 'Browser not supported!';
  }
  document.body.removeChild(textarea);
};

function selectTable(tableIdentifier, org, btnIdentifier) {
  if (org == 'google') {
    selectTableGoogle(tableIdentifier, btnIdentifier);
  }
  else if (org == 'msft') {
    selectTableMicrosoft(tableIdentifier, btnIdentifier);
  }
};