admin 发表于 2007-6-3 00:09:35

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

<script>
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_saf = userAgent.indexOf('applewebkit') != -1 || navigator.vendor == 'Apple Computer, Inc.';
var is_webtv = userAgent.indexOf('webtv') != -1;
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera && !is_saf && !is_webtv) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
function runCode(obj) {
      var winname = window.open('', "_blank", '');
      winname.document.open('text/html', 'replace');
        winname.opener = null; // 防止代码对论谈页面修改
      winname.document.write(obj.value);
      winname.document.close();
}
function saveCode(obj) {
      var winname = window.open('', '_blank', 'top=10000');
      winname.document.open('text/html', 'replace');
      winname.document.write(obj.value);
      winname.document.execCommand('saveas','','code.htm');
      winname.close();
}
function copycode(obj) {
        if (window.clipboardData)
   {
   obj.select();
   // the IE-manier
   window.clipboardData.setData("Text", obj.value);
   
   // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
   // het is mij echter onbekend vanaf welke versie dit precies werkt:
   }
   else if (window.netscape)//浏览器为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;
                  
                   // 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=obj.value;
                  
                   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);
                  
   
   }

}
</script>
<textarea id=code cols=60 rows=15></textarea>
<br>
<button onclick=runCode(code) >运行</button>&nbsp;&nbsp;<INPUT onclick=copycode(code) type=button value=复制代码>&nbsp;&nbsp;<INPUT onclick=saveCode(code) type=button value=另存代码>
            &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,论坛上转帖率很高的故事。
页: [1]
查看完整版本: 运行,复制,另存为的代码