当前位置: 首页 > 编程日记 > 正文

博客园HTML源码运行特制js(原创自Zjmainstay)

canrun

测试运行HTML
<html>
<head><title>测试博客园HTML源码运行程序</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Content-Language" content="zh-CN" /><script type="text/javascript">alert('哈哈,我运行咯!!!');</script>
</head>
<body>
</body>
</html>

参考肥杜的教你如何在博客园放“可运行”代码

自己定制了一个专属博客园的HTML源码运行js文件。

$(document).ready(function(){//如果带有canrun标签if($("#cnblogs_post_body p:first").html()&&$("#cnblogs_post_body p:first").html().toLowerCase().indexOf('canrun') != -1){//移除canrun标签$("#cnblogs_post_body p:first").remove();//在文章底部加入运行此段代码HTML,可以触发运行htmlvar runString = '<input type="button" value="运行此段代码" id="runHTML" />';if($(".cnblogs_code").length > 1) runString += '<input type="text" size="5px" id="hid" value="0" />Tips:0表示第一段代码,1表示第二段...';$("#cnblogs_post_body").append(runString);//为每一段源码加可运行按钮$.each($(".cnblogs_code"),function(i){$(this).before('<input type="button" class="runBtn" οnclick="doRunCnblogsHtml('+ i +');" style="cursor:pointer;" value="点此运行此段代码('+ i +')"/>');});}//运行此段代码点击触发事件$("#runHTML").click(function(){var hid = $("#hid").val();        //获取输入的代码段号doRunCnblogsHtml(hid);            //弹窗运行相应代码段
    });//首页,直接移除canrun标签var postCons = $(".postCon");for(var i=0;i<postCons.length;i++){if(postCons.eq(i).children('p:first').html()&&postCons.eq(i).children('p:first').html().toLowerCase().indexOf('canrun') != -1){postCons.eq(i).children('p:first').remove();}}
});
/*** 博客园格式化HTML执行函数* @params hid 格式化代码的个数index,第一个为0,第二个为1...*/
function doRunCnblogsHtml(hid){if(parseInt(hid) != hid) hid = 0;        //数值型检测$(".cnblogs_code").eq(hid).click();        //点击“+”以查看解析前的HTML源码$(".cnblogs_code").eq(hid).find(".cnblogs_code_copy").find("a").eq(0).click();        //点击复制按钮以得到解析后的HTML源码openWin($(".cnblogs_code").eq(hid).find('textarea').eq(0).val());        //将解析后的HTML源码在新窗口运行
}
/*** 新窗口执行HTML函数* @params     content        新窗口内容*/
function openWin(content){var newwin = window.open('', "_blank", '');        //为了简便,这里不设参数newwin.document.open('text/html', 'replace');newwin.opener = null;newwin.document.write(content);        //将内容写入新窗口
    newwin.document.close();
}
ZjmainstayRunHTML.js

//修复3个以上html源出错问题。

$(".cnblogs_code_copy a").eq(hid).click();

改为:$(".cnblogs_code").find(".cnblogs_code_copy").find("a").eq(0).click();

//新增功能:为每一个格式化源码增加直接运行按钮οnclick="doRunCnblogsHtml(i);",并标明代码段号。另,加入了注释说明。

本段js分析了博客园的HTML源码结构及源码获取方式而得,主要原理是:

博客园每段HTML代码都有cnblogs_code类,点击之后源码会处打开状态,再点击其下的“复制”按钮则会将源码放置

到一个textarea上,此时我们便可以调用textarea的内容,使用新窗口打开源码,此时HTML源码将在新窗口中运行。

另外,本快捷运行有个条件,那就是可运行源码的博文开头需加上canrun字段,然后换行。如下图(本文开头截图):

js文件已经考虑了博客园首页及文章页的情况,博客园首页将执行去除canrun字段处理,不生成可运行按钮。

运用方法,在博客园设置-页首Html代码中加入:

<script type="text/javascript" src="http://files.cnblogs.com/Zjmainstay/ZjmainstayRunHTML.js"></script>

即可。

转载于:https://www.cnblogs.com/Zjmainstay/archive/2012/07/15/cnblogs_runHTML.html

相关文章:

【组队学习】【23期】Datawhale零基础入门数据挖掘(心跳信号分类)

零基础入门数据挖掘&#xff08;心跳信号分类&#xff09; 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-data-mining/tree/master/HeartbeatClassification 基本信息 贡献人员&#xff1a;鱼佬、牧小熊、吉米杜、张晋、王皓月、姚昱君学习周期&am…

Unity3D提示“XX,some are mac os x (unix) and some are windows”

2019独角兽企业重金招聘Python工程师标准>>> 解决办法&#xff1a; 将Unity安装目录\Editor\Data\Resources\ScriptTemplates\目录下的所有文件用上面的方式修改换行编码&#xff0c;以后通过Unity3D编辑器创建的文件将默认以“CR LF”换行&#xff0c;一劳永逸。 转…

什么是Python?前景怎么样?

​ Python在人工智能行业的高速发展&#xff0c;引起了很多人的关注&#xff0c;很多目前都不知道什么是Python?前景怎么样?那么下面小编就为大家做下详细的介绍&#xff0c;希望能够帮助到大家。 什么是Python?前景怎么样? 你可能听说过c语言&#xff0c;听说过java语言&a…

Spring整合CXF,发布RSETful 风格WebService

这篇文章是承接之前CXF整合Spring的这个项目示例的延伸&#xff0c;所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了。如果你对Spring整合CXF WebService不了解&#xff0c;具体你可以参看这两篇文章&#xff1a; http://www.cnblogs.c…

使用CNN做文本分类——将图像2维卷积换成1维

使用CNN做文本分类from __future__ import division, print_function, absolute_importimport tensorflow as tfimport tflearnfrom tflearn.layers.core import input_data, dropout, fully_connectedfrom tflearn.layers.conv import conv_1d, global_max_poolfrom tflearn.l…

如何在Datawhale开源学习小程序中创建队伍?

我们的组队学习马上就要开营了&#xff0c;本次组队学习与以往不同的是小程序中增加了组队的功能。为了方便大家组队&#xff0c;Datawhale的 六一同学 为大家准备了在Datawhale开源学习小程序中创建队伍的教程。 Step01&#xff1a;打开小程序主页后&#xff0c;点击“审批小…

Python List 列表list()方法

Python基础数据类型之一列表list&#xff0c;在python中作用很强在&#xff0c;列表List可以包含不同类型的数据对像&#xff0c;同时它是一个有序的集合。所有序列能用到的标准操作方法&#xff0c;列表也都可以使用&#xff0c;比如切片、索引等&#xff0c;python的list是可…

一个用泛型隐式传递权限关键字的方法

最近和IBM在重新做公司的平台&#xff0c;其中涉及多租户问题&#xff0c;之前处理多租户数据隔离时考虑很简单&#xff0c;直接把权限关键字作为每个方法的参数传递给DAO。带来的问题是在编码过程中有部分同事经常会忘记添加&#xff0c;维护也有些麻烦&#xff0c;这次就想着…

软件工程实践2017 个人技术博客

目录 一、github项目管理 二、vue.js框架的搭建 三、通过axios调用api 四、javascript的Date对象 五、文件上传 六、javascript教程 一、github项目管理 参考资料&#xff1a; 廖雪峰的git教程西瓜学长提供的github团队项目管理博客。其中主要碰到的问题是代码冲突&#xff0c;…

Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 这是第…

参加完Python培训后可以找什么工作

Python在近几年的发展速度是非常快的&#xff0c;越来越多的学员开始学习Python技术&#xff0c;都想学成以后找一个好的工作&#xff0c;那么参加完Python培训后可以找什么工作呢?来看看下面的详细介绍吧。 参加完Python培训后可以找什么工作&#xff1a; 网络编程 除了网络和…

大型数据库设计原则与技巧

大型数据库设计原则与技巧 一个好的数据库产品不等于就有一个好的应用系统&#xff0c;如果不能设计一个合理的数据库模型&#xff0c;不仅会增加客户端和服务器段程序的编程和维护的难度&#xff0c;而且将会影响系统实际运行的性能。一般来讲&#xff0c;在一个MIS系统…

Datawhale组队学习周报(第005周)

本周&#xff08;03月15日~03月21日&#xff09;&#xff0c;第 23 期组队学习正在如火如荼的进行中。本期组队学习&#xff0c;一共有 4 门开源课程&#xff0c;共组建了 5 个学习群&#xff0c;参与的学习者有 740 人。另外&#xff0c;第 24 期组队学习也蓄势待发准备与大家…

安装hue依赖包

yum -y install rsync gcc gcc-c openldap-devel openssl-devel python-ldap python-devel python-setuptools python-simplejson sqlite-devel libxml2-devel libxslt-devel cyrus-sasl-devel gmp-devel 另外还需要安装mysql mysql-devel 本文转自 yntmdr 51CTO博客&a…

Python培训入门基础知识学什么?

Python培训基础知识主要是针对一些零基础的同学安排的&#xff0c;虽说Python是相对比较简单的一门编程语言&#xff0c;但是没有基础的同学还是要进行系统的学习&#xff0c;那么Python培训入门基础知识学什么呢?来看看下面小编的详细介绍。 Python培训入门基础知识学什么?P…

Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理

介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处。 Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后&#xff0c;重新开机&#xff0c;运行数据库及数据库监听&#xff0c;再运行应用服务后&#xff0c;登录会出现如下提示&#xff0c;需…

cmd命令 安装本地服务器

安装本地服务器 0下载nodejs并安装 1安装npm &#xff1a;npm install -g anywhere 2打开服务器 &#xff1a;anywhere 8080 3停用服务器 ctrlc 查找路径 cd c:/program/www/ 本文转自Ansue 51CTO博客&#xff0c;原文链接http://blog.51cto.com/ansue/1732335&#xff1a;&…

你与ACM MM的距离只差一场算法比赛

你与ACM MM的距离只差一场算法比赛 伴随5G时代来临&#xff0c;视频广告迎来爆发式增长&#xff0c;在广告创意/投放/策略等广告系统的关键环节中&#xff0c;对视频广告内容的深度理解越发显得重要且迫切。 因此&#xff0c;2021腾讯广告算法大赛今年的赛题聚焦在了视频广告…

Python培训班适合哪些人报名学习

学习Python技术有两种方法&#xff0c;一个是自学&#xff0c;一个是报Python培训班进行系统学习&#xff0c;自学肯定是对一些有Python基础的同学比较合适的&#xff0c;那么Python培训班适合哪些人报名学习呢?来看看下面的详细介绍。 Python培训班适合哪些人报名学习? 1.适…

网络硬件一篇通

现在局域网大多采用以太网的拓扑结构&#xff0c;物理上由服务器、工作站、集线器、交换机、路由器、网卡、 RJ45水晶头、网线等组成。很多朋友想了解一些局域网的硬件组成及相关硬件的安装设置&#xff0c;下面就谈谈这方面的话题。一、网络硬件概述1、服务器和工作站大多数时…

DevExpress.XtraReports打印

使用DevExpress.XtraReports打印报表时&#xff0c;分别采用两种打印方式。以下面的打印样式为列作简要说明&#xff1a; 第一种&#xff1a;表头表尾保持不变&#xff0c;表中数据根据实际打印条数更改。如现在我要打印的学生为三个&#xff0c;则得到如下的报表&#xff1a; …

【直播】鱼佬:心跳信号分类赛高分突破

心跳信号分类赛高分突破 目前 Datawhale第23期组队学习正在如火如荼的进行中。为了大家更好的学习&#xff0c;零基础入门数据挖掘&#xff08;心跳信号分类&#xff09; 的课程设计者王贺&#xff0c;将为大家带来一场直播分享——心跳信号分类赛高分突破。 直播信息 主讲人…

21个UI设计必会的设计技巧

想要成为一名合格的UI设计师&#xff0c;必须要有扎实的基础&#xff0c;和丰富的设计经验&#xff0c;本期小编为大家介绍的UI设计培训教程是21个UI设计必会的设计技巧&#xff0c;可帮助大家提升自己。 UI设计培训技术分享&#xff1a;一个好的UI设计是由无数个小决定组成的&…

SQL Server 2014新特性——基数评估(白皮书阅读笔记)

基数评估 目录 基数评估 说明 基数评估准确的重要性 模型假设 启用新的基数评估 验证基数评估的版本 在迁移到新的基数评估前要测试 校验基数评估 偏差问题 需要手动处理的变化 避免因为新的CE造成性能下降 SQL Server 2014中的修改 增加多个谓词的相关性的假设 修改超出统计信…

【直播】张晋:心跳信号分类模型融合

心跳信号分类模型融合 目前 Datawhale第23期组队学习 正在如火如荼的进行中。为了大家更好的学习&#xff0c;零基础入门数据挖掘&#xff08;心跳信号分类&#xff09; 的课程设计者张晋&#xff0c;将为大家带来一场直播分享——心跳信号分类模型融合。 直播信息 主讲人&am…

无密码SSH配置

由于Hadoop和以后用到的Git分布式版本控制都用到了SSH&#xff0c;故这里把无密码登录的SSH的配置过程记录下&#xff1a; 1. 首先切换到想要使用ssh的用户下&#xff0c;不一定是root用户 2. ssh-keygen –t rsa –P ‘’ &#xff08;这个用来产生id_rsa.pub和id_rsa&#xf…

学Java技术,这些问题要避免

参加java培训学习java技术不是一朝一夕就能学会的事情&#xff0c;在学习的过程中还要注意学习方式&#xff0c;有一些错误是要避免的&#xff0c;下面我们就为大家详细的介绍一下学java技术要避免哪些问题? Java培训分享&#xff1a;学Java技术&#xff0c;这些问题要避免 1.…

Activity悬浮并可拖动(访悬浮歌词)

强烈推荐&#xff1a; 最无私的Android资料&#xff08;书籍代码&#xff09;分享-不要积分&#xff08;求置顶&#xff09;http://www.eoeandroid.com/thread-80891-1-1.html 大量项目源码分享http://www.eoeandroid.com/thread-162339-1-1.html 基于Android系统的影音播放器开…

实现单向访问控制

[Router]acl 3000 match-order auto //配置acl 3000[Router-acl3000]rule 1 deny icmp source 192.168.10.30 0.0.0.0 destination 192.168.10.20 0.0.0.0 icmp-type echo // 禁止主机PC2 ping主机PC1。[Router-acl3000]rule 2 deny tcp source 192.168.10.30 0.0.0.0 destin…

【直播】鱼佬:数据挖掘师之路(河北高校数据挖掘邀请赛)

数据挖掘师之路 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中。为了大家更好的参赛&#xff0c;王茂霖分享了 从0梳理1场数据挖掘赛事&#xff01;&#xff0c;完整梳理了从环境准备、数据读取、数据分析、特征工程到数据建模的整个过程。03月28日晚&#xff0c;王贺也为…