找回密码
 点一下
查看: 1913|回复: 6

火狐下 代码高亮 复制代码无效

[复制链接]
发表于 2009-6-27 06:19:14 | 显示全部楼层 |阅读模式
火狐下 jass高亮 复制代码无效
ie有效

[ code]的也无效...

似乎是pw的这个复制函数火狐都不行...

[jass]复制不了把~~[/jass]
  1. 还是复制不了
复制代码



或者。。难道是我火狐设置问题。。..最近刚用...不是很熟悉..


无人解答
发表于 2009-6-27 10:26:18 | 显示全部楼层
<a href="javascript:" onclick="CopyCode(document.getElementById('code2'));">复制代码</a>

是浏览器对js函数的支持问题
回复

使用道具 举报

 楼主| 发表于 2009-6-27 14:41:22 | 显示全部楼层
据说有人的火狐可以....
回复

使用道具 举报

 楼主| 发表于 2009-6-30 20:48:22 | 显示全部楼层
无人解决么..
上一楼那个人..结果也是不行的
回复

使用道具 举报

发表于 2009-6-30 23:42:59 | 显示全部楼层
我的米有问题啊 楼主去下个新版地吧
回复

使用道具 举报

 楼主| 发表于 2009-7-3 15:21:00 | 显示全部楼层
file:///C:/Users/lzf/AppData/Local/Temp/moz-screenshot.png 未命名.jpg
还是不行啊..我更新到最新的3.5了...你确定点的上图 圈起来的那个?
回复

使用道具 举报

 楼主| 发表于 2009-7-6 02:48:07 | 显示全部楼层
...我自己的那个高亮 网上找了个复制函数 可以了.

都说是火狐的兼容问题  
(pw的那个复制函数调用的 那个方法 火狐禁止掉了 ,貌似是因为安全性..)
  1. function copyToClipboard(txt){
  2. if(window.clipboardData) {
  3. window.clipboardData.clearData();
  4. window.clipboardData.setData("Text", txt);
  5. } else if(navigator.userAgent.indexOf("Opera") != -1) {
  6. window.location = txt;
  7. } else if (window.netscape) {
  8. try {
  9. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  10. } catch (e) {
  11. alert("被浏览器拒绝!\\n请在浏览器地址栏输入\\'about:config\\'并回车\\n然后将\\'signed.applets.codebase_principal_support\\'设置为\\'true\\'");
  12. }
  13. var clip = Components.classes[\\'@mozilla.org/widget/clipboard;1\\'].createInstance(Components.interfaces.nsIClipboard);
  14. if (!clip)
  15. return;
  16. var trans = Components.classes[\\'@mozilla.org/widget/transferable;1\\'].createInstance(Components.interfaces.nsITransferable);
  17. if (!trans)
  18. return;
  19. trans.addDataFlavor(\\'text/unicode\\');
  20. var str = new Object();
  21. var len = new Object();
  22. var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  23. var copytext = txt;
  24. str.data = copytext;
  25. trans.setTransferData("text/unicode",str,copytext.length*2);
  26. var clipid = Components.interfaces.nsIClipboard;
  27. if (!clip)
  28. return false;
  29. clip.setData(trans,null,clipid.kGlobalClipboard);
  30. }
  31. }
复制代码
这个复制的js函数  输入的是文本
而火狐 .innerText 也是不行..

如果用.innerText 那还要加个函数
  1. function isIE()
  2. {
  3. if(window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
  4. return true;
  5. else
  6. return false;
  7. }
  8. if(!isIE()){//firefox       innerText       define
  9. HTMLElement.prototype.__defineGetter__("innerText",
  10. function(){
  11. var anyString="";
  12. var childS=this.childNodes;
  13. for(var i=0;i<childS.length;i++){
  14. if(childS[i].nodeType==1)
  15. anyString +=childS[i].tagName=="BR"?\\'\\n\\':childS[i].innerText;
  16. else if(childS[i].nodeType==3)
  17. anyString +=childS[i].nodeValue;
  18. }
  19. return anyString;
  20. }
  21. );
  22. HTMLElement.prototype.__defineSetter__("innerText",
  23. function(sText){this.textContent=sText;}
  24. );
  25. }
复制代码

这样火狐就可以和ie一样正常复制粘贴了..


效果见 http://linzefei.netne.net/read.php?tid=102


ps: 由于是在php下写的 所以单引号 加了个斜杆 转义
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-28 17:11 , Processed in 0.112269 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表