크로스 브라우저 개발 경험 요약 (4) Clipboard_javascript 스킬에 쓰는 방법

WBOY
풀어 주다: 2016-05-16 18:27:22
원래의
1167명이 탐색했습니다.
IE와 Firefox는 JavaScript를 지원하여 클립보드에 콘텐츠를 쓸 수 있습니다.
IE는 클립보드 콘텐츠에 명령을 쓰는 것을 쉽게 지원할 수 있습니다. execCommand() 또는 window.clipboardData를 사용할 수 있습니다.

execCommand를 사용하려면 먼저 다음 코드와 같이 페이지에서 클립보드에 복사할 콘텐츠를 선택해야 합니다.
코드 복사 코드는 다음과 같습니다.

var doc = obj.createTextRange()
doc.select()
doc.execCommand(' copy');

window.clipboardData를 사용하는 방법은 다음과 같습니다. Firefox에서 클립보드에 쓰기 기능도 구현합니다.
코드 복사 코드는 다음과 같습니다.

if(window.clipboardData) //IE
{
window.clipboardData.clearData ();
window.clipboardData.setData("Text", txt);
}
else if (window.netscape)
{
try { netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect");
}
catch (e)
{
alert("'about:config'를 방문하여 signed.applets.codebase_principal_support를 'true'로 설정하세요."); //사용자에게 브라우저의 보안 설정을 열라는 메시지 표시
}

varclip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard) ;
if (!clip)
return;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if (!trans)
return;
trans.addDataFlavor ('text/unicode')
var str = new Object()
var len = new Object(); str = Components.classes["@mozilla.org/supports-string; 1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data =
trans; .setTransferData("text/unicode",str,copytext.length*2 );
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return; trans,null,clipid.kGlobalClipboard);
}


위 코드는 IE 및 Firefox에서 클립보드에 사용자 정의 콘텐츠를 쓸 수 있지만 Opera 및 WebKit 커널 브라우저는 보안 요구 사항이 더 높으므로 그렇지 않습니다. JavaScript로 클립보드 내용을 직접 조작하는 방식을 지원하면 다른 스크립트 언어를 통해서만 "국가를 구할" 수 있습니다.

Opera, Safari, Chrome은 ActionScript를 사용하여 클립보드에 콘텐츠를 기록합니다.

특정 구현에서는 플렉스나 플래시를 사용하여 원본 이미지나 텍스트를 대체하여 원본 액션 버튼의 모양을 구현할 수 있습니다. 버튼을 클릭하면 다음 ActionScript 스크립트를 실행합니다.

//브라우저 환경에서 클립보드에 써야 하는 내용을 가져옵니다.

var s:String = String (ExternalInterface.call ("getURL4Clipboard")); //getURL4Clipboard는 페이지의 클립보드 내용을 반환하는 자바스크립트 메소드입니다

//클립보드 내용 설정

System.setClipboard(s) ;

//사용자 정보 프롬프트 등 클립보드 내용을 설정한 후 계속해야 하는 JavaScript 함수를 호출합니다.

ExternalInterface.call("copyURLCompleted") //copyURLCompleted 페이지의 자바스크립트 방식이므로 복사 작업을 계속 실행하세요.
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿