You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

57 rivejä
1.8 KiB

  1. (function() {
  2. var copylinkbtn = document.getElementById("copy-link-btn"),
  3. copylink = document.getElementById("copy-link-wrapper"),
  4. overlay = document.getElementById("overlay");
  5. var url = "http://url"
  6. copylinkbtn.addEventListener("click", function() {
  7. var error = document.getElementsByClassName('error');
  8. while (error[0]) {
  9. error[0].parentNode.removeChild(error[0]);
  10. }
  11. document.body.className += ' active';
  12. copylink.children[1].value = url;
  13. copylink.children[1].focus();
  14. copylink.children[1].select();
  15. }, false);
  16. overlay.addEventListener("click", function() {
  17. document.body.className = '';
  18. }, false);
  19. copylink.children[2].addEventListener("keydown", function(e) {
  20. var error = document.getElementsByClassName('error');
  21. while (error[0]) {
  22. error[0].parentNode.removeChild(error[0]);
  23. }
  24. setTimeout(function() {
  25. if((e.metaKey || e.ctrlKey) && e.keyCode === 67 && isTextSelected(copylink.children[2])) {
  26. document.body.className = '';
  27. } else if((e.metaKey || e.ctrlKey) && e.keyCode === 67 && isTextSelected(copylink.children[2]) === false) {
  28. var error = document.createElement('span');
  29. error.className = 'error';
  30. var errortext = document.createTextNode('The link was not copied, make sure the entire text is selected.');
  31. error.appendChild(errortext);
  32. copylink.appendChild(error);
  33. }
  34. }, 100);
  35. function isTextSelected(input) {
  36. if (typeof input.selectionStart == "number") {
  37. return input.selectionStart == 0 && input.selectionEnd == input.value.length;
  38. } else if (typeof document.selection != "undefined") {
  39. input.focus();
  40. return document.selection.createRange().text == input.value;
  41. }
  42. }
  43. }, false);
  44. })();