멀티 브라우저(IE, Firefox, Opera) 클립보드 복사 기능 수정 버전_javascript 기술 지원

WBOY
풀어 주다: 2016-05-16 18:58:01
원래의
1365명이 탐색했습니다.


firefox에서 signed.applets.codebase_principal_support를 설정해야 한다는 점에 유의해야 합니다.
firefox 브라우저의 주소 표시줄에 about:config를 입력하고 필터에 signed.applets.codebase_principal_support를 입력한 후 두 번 클릭합니다. 진정한 지원으로 설정하세요. Firefox는 기본적으로 클립보드의 스크립트 조작을 지원하지 않기 때문입니다.
아무것도 지원하지 않는 브라우저가 가장 안전한 브라우저이기 때문이죠.


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]


즉, 파이어폭스에서 클립보드에 있는 정보를 읽는 방법 코드는 다음과 같습니다.


function getClipboard()
{
if (window.clipboardData)
{
return (window.clipboardData.getData('text'))
}
else
{
if (window.netscape)
{
시도
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
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");
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object()
var len = new Object( );
trans.getTransferData ("text/unicode", str, len);
}
catch (e)
{
alert("firefox 보안 제한으로 인해 클립보드 작업이 제한됩니다. , 'about: config'Set signed.applets.codebase_principal_support' to true'를 열고 다시 시도하십시오. 상대 경로는 firefox 루트 디렉토리/greprefs/all.js");
return null;
}
if (str)
{
if (Components.interfaces.nsISupportsWString)
{
str = str.value.QueryInterface(Components.interfaces.nsISupportsWString)
}
else
{
if (Components.interfaces.nsISupportsString)
{
str = str.value.QueryInterface(Components.interfaces.nsISupportsString)
}
else
{
str = null;
}
}
}
if (str)
{
return (str.data.substring(0, len.value / 2));
}
}
}
return null;
}


다음은 Firefox


코드 복사 코드는 다음과 같습니다. copy2Clipboard=function(txt){
if(window. clipsboardData){
window.clipboardData.clearData();
window.clipboardData.setData("Text",txt)
}
else if(navigator.userAgent.indexOf("Opera") !=-1){
window .location=txt;
}
else if(window.netscape){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect") ;
}
catch( e){
alert("firefox 보안 제한으로 인해 클립보드 작업이 제한됩니다. 'about:config'를 열고 signed.applets.codebase_principal_support'를 true로 설정하고 다시 시도하세요. . 상대 경로는 firefox 루트 디렉터리 / grprefs/all.js");
return false;
}
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 str=Components.classes[ "@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString)
var copytext=txt;str.data=copytext; trans.setTransferData("text/unicode", str,copytext.length*2);
var Clipid=Components.interfaces.nsIClipboard;
if(!clip)return false
,null,clipid.kGlobalClipboard);
}
}


특정 애플리케이션은 Script House의 코드를 참고하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!