找回密码
 注册账户
查看: 2269|回复: 4

运行,复制,另存为的代码

[复制链接]
admin 发表于 2007-6-3 00:09:35 | 显示全部楼层 |阅读模式
  1. <script>
  2. var userAgent = navigator.userAgent.toLowerCase();
  3. var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
  4. var is_saf = userAgent.indexOf('applewebkit') != -1 || navigator.vendor == 'Apple Computer, Inc.';
  5. var is_webtv = userAgent.indexOf('webtv') != -1;
  6. var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera && !is_saf && !is_webtv) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
  7. function runCode(obj) {
  8.         var winname = window.open('', "_blank", '');
  9.         winname.document.open('text/html', 'replace');
  10.         winname.opener = null; // 防止代码对论谈页面修改
  11.         winname.document.write(obj.value);
  12.         winname.document.close();
  13. }
  14. function saveCode(obj) {
  15.         var winname = window.open('', '_blank', 'top=10000');
  16.         winname.document.open('text/html', 'replace');
  17.         winname.document.write(obj.value);
  18.         winname.document.execCommand('saveas','','code.htm');
  19.         winname.close();
  20. }
  21. function copycode(obj) {
  22.         if (window.clipboardData)
  23.    {
  24.      obj.select();
  25.    // the IE-manier
  26.    window.clipboardData.setData("Text", obj.value);
  27.    
  28.    // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
  29.    // het is mij echter onbekend vanaf welke versie dit precies werkt:
  30.    }
  31.    else if (window.netscape)  //浏览器为netscape
  32.    {
  33.    
  34.                    // dit is belangrijk maar staat nergens duidelijk vermeld:
  35.                    // you have to sign the code to enable this, or see notes below
  36.                    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
  37.                   
  38.                    // maak een interface naar het clipboard
  39.                    var clip = Components.classes['@mozilla.org/widget/clipboard;1']
  40.                                  .createInstance(Components.interfaces.nsIClipboard);
  41.                    if (!clip) return;
  42.                   
  43.                    // maak een transferable
  44.                    var trans = Components.classes['@mozilla.org/widget/transferable;1']
  45.                                   .createInstance(Components.interfaces.nsITransferable);
  46.                    if (!trans) return;
  47.                   
  48.                    // specificeer wat voor soort data we op willen halen; text in dit geval
  49.                    trans.addDataFlavor('text/unicode');
  50.                   
  51.                    // om de data uit de transferable te halen hebben we 2 nieuwe objecten
  52.                    // nodig om het in op te slaan
  53.                    var str = new Object();
  54.                    var len = new Object();
  55.                   
  56.                    var str = Components.classes["@mozilla.org/supports-string;1"]
  57.                                 .createInstance(Components.interfaces.nsISupportsString);
  58.                   
  59.                    var copytext=obj.value;
  60.                   
  61.                    str.data=copytext;
  62.        
  63.                    trans.setTransferData("text/unicode",str,copytext.length*2);
  64.                   
  65.                    var clipid=Components.interfaces.nsIClipboard;
  66.                   
  67.                    if (!clip) return false;
  68.                   
  69.                    clip.setData(trans,null,clipid.kGlobalClipboard);
  70.                   
  71.    
  72.    }

  73. }
  74. </script>
  75. <textarea id=code cols=60 rows=15></textarea>
  76. <br>
  77. <button onclick=runCode(code) >运行</button>&nbsp;&nbsp;<INPUT onclick=copycode(code) type=button value=复制代码>&nbsp;&nbsp;<INPUT onclick=saveCode(code) type=button value=另存代码>
  78.             &nbsp;提示:您可以先修改部分代码再运行</DIV></DIV>
复制代码
绝望的咸鱼 发表于 2007-6-14 00:59:17 | 显示全部楼层
收藏,以后写程序有需要,谢谢:handshake
peter0802 发表于 2008-11-12 08:00:01 | 显示全部楼层
adppl 发表于 2008-12-11 08:00:04 | 显示全部楼层
red.girl 发表于 2008-12-11 16:30:20 | 显示全部楼层

你穷不穷?我很穷!穷女孩日记网路发烧

金融海啸,裁员减薪,最近网路上大家关注什麽?
一个名为『穷女孩』的博客,每天吸引数万白领上班族浏览观看。
穷女孩将生活中发生的糗事分享给大家,并透过幽默诙谐的笔触,将她的糗事,通通变成鼓励积极向上的事。
最近穷女孩买了套房子,被原业主的爸爸及女友强占,四处求助碰壁,乾脆博客连载,将事件以幽默叙述po了出来,引起网民高度关注,变成了全国白领,MSN,论坛上转帖率很高的故事。
您需要登录后才可以回帖 登录 | 注册账户

本版积分规则

存档|黑屋|手机|网络实验室 本站服务器由美国合租以及IDCLayer国际数据提供!!!

GMT+8, 2026-6-9 20:49 , Processed in 0.011355 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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