`

JavaScript编写的Copy功能(兼容Firefox)

阅读更多
Firefox 不支持 obj.innerText 属性。

obj.innerText alert()显示的值是 undefined。

Firefox 支持 innerHTML 属性却不支持 innerText,如果不想用innerHTML 替代,可以用如下代码

由于Firefox不支持document.all,所以考虑兼容的时候获取对象通常用document.getelementbyid('yourid').

if (document.all) {  //如果不是IE  
//也可以用 
if(navigator.appName.indexOf("Explorer") > -1) 
// obj.innerText = "myText";
}else 
{ 
obj.textContent = "yourtext"; //用textContent 替代
 }


Firefox、IE兼容的复制到剪贴板 javascript 代码


这个函数使用在Firefox下时需要修改一个配置:
1.打开firefox ,在地址栏中输入: about:config
2.找到signed.applets.codebase_principal_support,将值设置为true

function copyToClipboard(txt) { 

  if(window.clipboardData) 
  { 
    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(!!被浏览器拒绝!\n请在浏览器地址栏输入’about:config’并回车\n然后将’signed.applets.codebase_principal_support’设置为’true’); 
    } 
    var clip = 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(); 
    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; 
    clip.setData(trans,null,clipid.kGlobalClipboard); 
  } 
  return true; 
} 




或者用下面这段代码,功能相同。

function CopyToClipboard(meintext)
{
    if (window.clipboardData) 
    {
        // the IE-manier
        window.clipboardData.setData("Text", meintext);
    }
    else if (window.netscape) 
    { 
        // dit is belangrijk maar staat nergens duidelijk vermeld:
        // you have to sign the code to enable this, or see notes below 
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
          
        // maak een interface naar het clipboard
        var clip = Components.classes['@mozilla.org/widget/clipboard;1']
                        .createInstance(Components.interfaces.nsIClipboard);
        if (!clip) return;
        //alert(clip);
        // maak een transferable
        var trans = Components.classes['@mozilla.org/widget/transferable;1']
                        .createInstance(Components.interfaces.nsITransferable);
        if (!trans) return;
           
        // specificeer wat voor soort data we op willen halen; text in dit geval
        trans.addDataFlavor('text/unicode');
           
        // om de data uit de transferable te halen hebben we 2 nieuwe objecten 
        // nodig om het in op te slaan
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"]
                        .createInstance(Components.interfaces.nsISupportsString);
        var copytext=meintext;
        str.data=copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        var clipid=Components.interfaces.nsIClipboard;
        if (!clip) return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
    }
    else
    {
        return false;
    }

    alert("您已经复制: " + meintext);
    return false;
}



分享到:
评论

相关推荐

    兼容IE与Firefox的js 复制代码

    总结而言,上述描述和代码示例中涵盖了如何编写兼容IE和Firefox的JavaScript复制代码,如何使用ID对应的方式实现多个复制功能,以及在不同浏览器中使用不同方法处理剪贴板操作的知识点。希望这些信息对您有所帮助。

    支持FireFox的剪貼板

    这段代码通过条件判断和调用特定的API或组件接口,实现了在Firefox和其他基于Gecko的浏览器中的剪贴板复制功能。这不仅展示了前端开发中跨浏览器兼容性的重要性,也强调了理解并熟练掌握各浏览器特性的必要性。在...

    JS_FF--IE (兼容_数据直接添加到剪切板)

    "JS_FF--IE (兼容_数据直接添加到剪切板)" 的主题是关于如何在Firefox(FF)和Internet Explorer(IE)中编写兼容的代码,以便用户可以将特定的数据直接添加到剪贴板。 **在IE中的实现:** IE浏览器提供了`window....

    javaScript复制功能调用实现方案

    这种方法是通过检测浏览器类型来执行不同的JavaScript代码,以兼容不同浏览器的复制功能。首先,通过`navigator.userAgent`来识别浏览器类型,如IE、Firefox、Chrome等。对于IE,可以使用`clipboardData`对象来设置...

    js复制链接支持IE,火狐

    标题中的“js复制链接支持IE,火狐”指的是在JavaScript编程中实现文本链接的复制功能,并确保这个功能在两种主流浏览器——Internet Explorer(IE)和Mozilla Firefox(火狐)上都能正常工作。在Web开发中,由于不同...

    各浏览器拷贝copy内容到剪贴板.docx

    - **Firefox等基于Mozilla的浏览器**:使用XPCOM组件进行操作。 #### JavaScript API支持 现代浏览器普遍支持`navigator.clipboard` API,这是一个更为简洁且安全的方式来处理剪贴板操作。然而,考虑到老版本...

    一段多浏览器的"复制到剪贴板"javascript代码.docx

    本文将详细介绍一段多浏览器兼容的“复制到剪贴板”JavaScript代码,该代码能够很好地支持IE、Firefox等主流浏览器。 ```javascript function copyToClipboard(txt) { if (window.clipboardData) { // IE浏览器 ...

    兼容各浏览器的复制内容到剪切板

    1. **跨浏览器兼容性**:在不同的浏览器(如Chrome、Firefox、Safari、Edge和IE)中,复制和粘贴功能的实现方式不尽相同。开发者需要处理这些差异,确保代码在所有主流浏览器上都能正常运行。 2. **JavaScript API*...

    浏览器exe快捷打开

    copy /y NUL Firefox.lnk start /wait "C:\Windows\System32\shell32.dll" 0x102 /n /i /d:"%ProgramFiles%\Mozilla Firefox\firefox.exe" Firefox.lnk move /y Firefox.lnk "%USERPROFILE%\Desktop\Firefox.lnk" ``...

    Copy Buddy-crx插件

    7. **兼容性**:作为一款CRX插件,Copy Buddy是专为Chrome浏览器设计的,但有些类似的扩展可能也支持Firefox、Opera等其他浏览器,这取决于开发者的适配情况。 Copy Buddy的出现,使得信息管理和处理变得更加方便,...

    The Copy Me-crx插件

    它们通常由HTML、CSS和JavaScript编写,通过Chrome Web Store、Firefox Add-ons等平台分发,用户可以根据需要安装。 2. **CRX文件**:CRX是Google Chrome浏览器扩展的打包格式,用于存储扩展的所有必要文件,包括...

    Code Copy-crx插件

    然而,通过一些方法,如使用其他浏览器的Chrome扩展兼容器,它可能也能在Firefox、Opera等浏览器上运行。 3. **操作简便**:该插件的使用非常直观,只需在含有代码块的页面上激活,就能一键复制代码,无需手动选中...

    js实现点击按钮复制文本功能

    这个方法在现代浏览器(如Firefox 48.0、Chrome 60.0)和一些较旧版本(如IE 8)中都是可行的。但需要注意的是,`document.execCommand`已经在某些最新的浏览器版本中被废弃,因此在未来的项目中,可能需要考虑使用...

    kindeditor 入门介绍

    最后,KindEditor 兼容多种主流浏览器,包括 IE、Firefox、Safari、Chrome 和 Opera,确保了在不同平台上的良好体验。 KindEditor 自 2005 年首次发布以来,经历了多次版本迭代,逐渐完善并增强了功能。例如,2011 ...

    Javascript客户端将指定区域导出到Word、Excel的代码

    同时,还需要注意浏览器兼容性问题,因为ActiveX对象主要是在IE浏览器中使用的技术,其他现代浏览器例如Chrome、Firefox并不支持ActiveX。在实际开发中,可能需要寻找替代方案,比如使用Office.js这类现代API来实现...

    kindeditor使用说明文档

    它支持多种浏览器,包括IE、Firefox、Chrome、Safari和Opera等,提供了一种与Word类似的界面,让用户在网页上进行文本编辑时有更为熟悉的体验。本使用说明文档将详细解释如何安装、配置以及使用KindEditor。 一、...

    基于js实现复制内容到操作系统粘贴板过程解析

    然而,对于其他浏览器如Chrome、Firefox等,出于安全考虑,直接通过JavaScript访问系统剪贴板的功能是被禁止的。为了克服这一限制,开发者需要使用第三方插件。目前流行的选择有ZeroClipboard.js和clipboard.js这两...

    jquery magic contextmenu

    5. 兼容性好:适用于各种现代浏览器,包括Chrome、Firefox、Safari、Edge和IE8+。 三、使用步骤 使用jQuery Magic Contextmenu的步骤如下: 1. 引入依赖:首先确保引入jQuery库,然后引入jQuery Magic Contextmenu...

    document.execCommand()的用法

    例如,Firefox自版本68开始已经废弃了该方法,而其他现代浏览器如Chrome、Edge也计划逐步弃用。这是因为该方法的实现不一致,且存在安全性和性能问题。因此,现代Web开发更倾向于使用更可靠的API,如Range API、...

Global site tag (gtag.js) - Google Analytics