현재 태그 정의 주소를 미리 정의 된 링크와 함께 복사하기 위해 javascript로 하드 코딩 된 함수로 작업하고 있습니다. 내가 만든 것은 입력 형식의 텍스트 요소를 만들고 복사하려는 값으로 값을 설정하는 것이지만 내가 원하는 방식대로 작동하지 않는다는 것을 알 수 있습니다. Ctrl + V를 누르면 두 번째 항목이 내 기기의 클립 보드에있는 최신 값에 붙여 넣어졌습니다. 숨겨진 입력 태그에서 작동하도록 execCommand ("Copy")를 만드는 방법은 무엇입니까?숨겨진 입력 태그에 대해 execCommand ("Copy")를 작동 시키십시오.
function shareFile() {
var hiddenItem = document.createElement("input");
hiddenItem.type = "text";
hiddenItem.setAttribute("style","display: none");
hiddenItem.value = <?php echo (isset($_SERVER['HTTPS'])?"\"https://":"\"http://").$_SERVER['SERVER_NAME']."/filesystem/openfile.php?dir=\" + " ?> encodeURI(this.parentNode.parentNode.parentNode.getAttribute("r-directory"));
hiddenItem.select();
console.log(hiddenItem.value);
document.execCommand("Copy");
// location.href = "resources.php?smsg=The file's link has been successfully copied to your clipboard." <?php if (!empty($_GET['dir'])) echo " + \"&dir=".$_GET['dir']."\""?>;
return false;
}
P.S. (함수는 IMG 태그의 온 클릭 속성에 불린다) 가능한 많은 jQuery를 사용하지 마십시오! 고맙습니다.
당신은 할 수없는,에서'execCommand' 복사 내용 복사시 볼 수 _ 반드시 _ 요소 . 그래도 복사하기 직전에 일시적으로 유형 및/또는 가시성을 변경할 수 있습니다. 모든 스크립트가 실행되기 전에 페이지가 렌더링되지 않으므로 사용자는이 가시성 변경을 볼 수 없습니다. – Teemu
setAttribute 스타일 표시 없음을 제거하고 this.appendChild를 추가했지만 여전히 작동하지 않습니다. 문자열을 복사 할 수있는 해결 방법이 있습니까? 숨겨진 경우에도 입력 값을 콘솔 로그에 보낼 수 있습니다. –
[의도대로 작동하는 것으로 보입니다] (https://jsfiddle.net/bftfba6t/) ..? 페이지가 클라이언트에로드되기 전에 PHP 코드가 한 번만 실행됩니다. – Teemu