网上的 代码运行框 代码算是比较多的了,随便搜索一下都一大堆的,但是没有找到一合适的,只有自己折腾一个简单的,注本文介绍的方法需要引用jquery库 首页在dedecms模板中引入jq
网上的代码运行框代码算是比较多的了,随便搜索一下都一大堆的,但是没有找到一合适的,只有自己折腾一个简单的,注本文介绍的方法需要引用jquery库
首页在dedecms模板中引入jquery文件,如果没有你可以去jquery官网下载
在dedecms模板中添加
<script src="http://static.qmtx3.com/qmtx3static/jquery1.7.2.js" type="text/javascript"></script> 02 <script type="text/javascript"> 03 $(function() { 04 $('.runHtml').each(function(index, element) { 05 $(this).after('<textarea class="runHtmlTextarea" style="width:80%; min-height:150px; padding:10px; border:solid 1px #ccc; clear:both; display:block;">' + $(this).html() + '</textarea><p><input type="button" class="runHtmlBtn" value="运行"> <i class="runHtmlTips">你可以修改代码后再运行查看结果!</i></p>') 06 }); 07 $('div').delegate('.runHtmlBtn', 'click',function(){ 08 var newwin = window.open('about:blank'); 09 newwin.document.write($(this).parent().prev().val()); 10 }); 11 }); 12 </script>
代码事例:
源代码如下:
<div class="runHtml"> 2 1234567 3 </div>
代码说明:这段代码会将页面中class里包含runHtml样式的层全部变成代码运行框,如上面代码会把.runHtml这个div变成textarea代码运行框,可能有的朋友会问为什么不直接用textarea而用div,其实这点是出于对seo搜索引擎优化来做的,因为textarea里的内容蜘蛛是不会去抓取的,由于技术类文章代码段所占的篇幅比较大,有些可能整篇可能就是代码。
该方法并没有什么技术含量,唯一一点好处就是一个页面可以很方便的实现多个代码运行框,常见的代码运行框一般有复制,另存为功能,由于JS的复制功能兼容性并不友好,如果你想折腾复制功能可以从swf实现入手,至于另存为的功能我们也不知道怎么做好兼容性,希望知道的朋友留言告知