|
楼主 |
发表于 2009-7-6 02:48:07
|
显示全部楼层
...我自己的那个高亮 网上找了个复制函数 可以了.
都说是火狐的兼容问题
(pw的那个复制函数调用的 那个方法 火狐禁止掉了 ,貌似是因为安全性..)
- 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);
- }
- }
复制代码 这个复制的js函数 输入的是文本
而火狐 .innerText 也是不行..
如果用.innerText 那还要加个函数- function isIE()
- {
- if(window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
- return true;
- else
- return false;
- }
- if(!isIE()){//firefox innerText define
- HTMLElement.prototype.__defineGetter__("innerText",
- function(){
- var anyString="";
- var childS=this.childNodes;
- for(var i=0;i<childS.length;i++){
- if(childS[i].nodeType==1)
- anyString +=childS[i].tagName=="BR"?\\'\\n\\':childS[i].innerText;
- else if(childS[i].nodeType==3)
- anyString +=childS[i].nodeValue;
- }
- return anyString;
- }
- );
- HTMLElement.prototype.__defineSetter__("innerText",
- function(sText){this.textContent=sText;}
- );
- }
复制代码
这样火狐就可以和ie一样正常复制粘贴了..
效果见 http://linzefei.netne.net/read.php?tid=102
ps: 由于是在php下写的 所以单引号 加了个斜杆 转义 |
|