前言


色彩斑斓的"马"

虽然利用插入代码功能可以很华丽的插入色彩斑斓的代码,但是就html(Xhtml)代码、js代码、css代码而言,我更喜欢想蓝色理想论坛中的那种:有个文本框,文本框里面是网页代码,然后点击“运行代码”就可以很方便地以文本框中的内容新建一个页面,从而很直观方便的看到代码的运行效果。

所以今天抽了半天的时间做了这个小工具。可以很方便达到那种效果。厚道的说一声:的确参看了蓝色理想的代码,但是自己也修改了很多,因为原来的代码对firefox的兼容性实在是太差了,自己修正了比较多的代码,从而提供了对firefox更好地支持。但是非常遗憾的是,那个保存代码为html文件的功能,虽然很想也修改为能够兼容firefox,但是因为有点超出现阶段我的能力范围,所以留了个遗憾。虽然找到了一些 比较有价值的资料,但是依然没有能够实现此功能对firefox的支持。如果哪位高手有此经验,还请不吝赐教。其实那个工具,只是为了更方便以后的操作而已,并没有什么技术含量。比较核心的代码如下。

核心代码

/*****运行代码*******************************/
function runCode() {
var newWin = window.open('', "_blank", '');
newWin.document.open('text/html', 'replace');
newWin.opener = null;
var testCode=document.getElementById("txtTestCode").value;
newWin.document.write(testCode);
newWin.document.close();
}
/*****复制代码到粘贴板*********************/
function copyCode(obj){    
    var testCode=document.getElementById("txtTestCode").value;    
    if(copy2Clipboard(testCode)!=false)
    {        
        alert("生成的代码已经复制到粘贴板,你可以使用Ctrl+V 贴到需要的地方去了哦!  ");        
    }    
}
//很大的一陀是为了对firefox的兼容
copy2Clipboard=function (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("您的firefox安全限制限制您进行剪贴板操作,请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试");            
            return false;            
        }
        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);        
}
/*****保存代码为html页面,非常遗憾的现阶段只支持IE******/
function saveCode(obj) {
var newWin = window.open('', '_blank', 'top=10000');//这里是个技巧,弹出的页面,虽然去不掉,但是我们可以让它向下移动到屏幕之外
newWin.document.open('text/html', 'replace');
var testCode=document.getElementById("txtTestCode").value;
newWin.document.write(testCode);
newWin.document.execCommand('saveas','','code.htm');//firefox不兼容的主要原因就是因为ff不支持execCommand('saveas','','filename');
newWin.close();
}

实例演示

光说不练假把式,下面就是一个完整的例子。点击按钮试试效果吧。

<!doctype html public "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Keywords" content="YES!B/S!" /> <meta name="Description" content="This page is from http://Justinyoung.cnblogs.com" /> <title>CSS/Javascript demo</title> </head> <body> <p>A testpage from<a href="http://justinyoung.cnblogs.com/" title="博客园Yes!B/S!博客">YES!B/S!</a></p> </body> </html>

完整实例源码下载

点击下载图标下载


转载于:https://www.cnblogs.com/JustinYoung/archive/2008/01/04/run-code-for-test.html

这下终于可以方便地发表测试型网页代码了(附源码下载)相关推荐

  1. Winforn中DevExpress的TreeList中显示某路径下的所有目录和文件(附源码下载)

    场景 Winform中DevExpress的TreeList的入门使用教程(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  2. 实用的智力测试智商提升微信小程序源码下载

    这是一个考验智力,心里上面的一个测试游戏 支持多种测试方法比如有: 智商测试丨情商测试 性格测试丨爱情测试 抑郁症测试丨焦虑症测试 心理压力测试丨生活满意度测试 通过不同的测试,来检查你的智力,情商等 ...

  3. html中测试心理测试的代码,趣味心理测试源码、心理测试_心理测评微信小程序版...

    不知道大家曾经有没有过想要了解心理学相关知识的想法,研究人类的心理可是一件非常有趣的事呀! 在生活中,我们常常会被会被很多心理效应影响,这些效应的"魔力"你都了解几个呢? 趣味心理 ...

  4. PHPCMS V9 实现下拉加载的方法,兼容手机端(附源码下载)

    PHPCMS V9 实现下拉加载的方法,兼容手机端 HTML部分 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 ...

  5. 一个快速测试PlayCanvas Demo 的工程(内附源码)

    PlayCanvas Paoject 一个快速测试PlayCanvas Demo 的工程. 源码下载: PlayCanvas Paoject下载地址 操作说明: 1.安装依赖 npm install ...

  6. Linux下stream内存带宽测试参数和示例详解附源码(总结)

    目录 一.简介 二.使用简介 2.1 测试内容简介 2.2 编译参数简介 2.3 具体参数示例 三.源码下载及使用 四.其他相关知识链接 FIO测试硬盘性能参数和实例总结 一.简介 本文通过实例详细讲 ...

  7. mac 系统下android源码下载以及使用(总结)

    曾经买了本android系统内核分析的书,看了一段看不懂,工作也忙,差不多两年过去了,感觉android水平需要提高一下,就装备把书看看,但是在网上找了一些文章,参考了官方的下载方式,最后都没有很好的 ...

  8. linux直流电机测试,带霍尔传感器编码器的直流减速电机测速原理讲解(附源码)...

    查看: 14294|回复: 83 带霍尔传感器编码器的直流减速电机测速原理讲解(附源码) 高级会员, 积分 891, 距离下一级还需 109 积分 积分金钱891 注册时间2019-4-22 在线时间 ...

  9. ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)

    在介绍之前,先简单说一说ASP.NET服务端GZIP压缩模块的作用及工作原理,很多人编写网页的时候页面因为使用了大量的JS特效又或者放置很多大型动态广告导致了页面或脚本体积庞大,通常都会使用一些压缩工 ...

最新文章

  1. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
  2. 训练三层BP神经网络实现异或运算 Python 代码实现
  3. ASP.NET 5系列教程 (二):Hello World
  4. 论文笔记:Forecasting at Scale(Prophet)
  5. mysql中数据库database、实例instance、会话session的关系
  6. ORACLE 等待事件的分类
  7. java不带package和带package的编译方式
  8. idea 执行 java jar_使用 Intellij Idea 打包 java 工程为可执行 jar 包-Go语言中文社区...
  9. MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化
  10. html显示线条流动效果,css3实现线条流动效果
  11. 正则匹配图片地址 php,php正则匹配图片地址
  12. dedecms设置端口号_织梦程序使用宝塔面板端口修改方法
  13. 华为2017年营收突破6000亿;阿里巴巴全球总经理离职;亚马逊将关闭音乐存储服务丨价值早报
  14. 寒冬,送点社区温暖。
  15. 【Java开发者专场】阿里专家梁笑:2018双十一下单成功率99.9%!供应链服务平台如何迎接大促... 1
  16. 局域网用户的限制和反限制技巧
  17. 用铸造涂料中的消泡剂消除泡沫能对生产能起到哪些作用?
  18. SSOP封装和TSSOP封装能否兼容?
  19. JVM默认堆内存大小
  20. XP系统清理磁盘垃圾

热门文章

  1. 在DC中误删除ISA计算机后无法连接ISA配置服务器问题
  2. 包含头文件的问题之1.7编程基础之字符串 24:单词的长度
  3. SOA面向服务架构——SOA的概念
  4. 每天一道算法题(27)——找出元音字母并排序
  5. Linux jsp php集成环境,ImageMagick在程序中调用(linux环境,jsp,php)
  6. python写数据库中间件_python3开发进阶-Django框架的中间件的五种用法和逻辑过程...
  7. 构建高可用linux和鸟哥,构建高可用Linux服务器
  8. eclipse lombok插件安装_Eclipse导入spring-boot-plus(三)
  9. 英国央行行长:当前的加密货币不太可能取代法定货币
  10. Cover Protocol更新赔偿计划 新增三个新COVER代币获赔方