没想到最近(2012年12月份)实现代码复制问题,要不所有内容都是一行,只有拥有工具的人士才能很快的看到代码,这样代码用起来就简单多了,可以直接复制了啊,不用每次是转化什么的。
这篇文章技术是技术为主,看看他们用了什么方法,需要的朋友可以参考下。为方便备份,先打包一份代码,有需要的自己研究。
复制代码 代码如下:
//#region copy&run code
$(function () {
var hlcodes = $(#cnblogs_post_body div.cnblogs_code);
if (hlcodes.length) {
loadencoderjs();
$.each(hlcodes, function () {
var htmlcontent = $(this).html();
$(this).html(htmlcontent.replace(/(
){3}/gi, '
'));
if ($(this).find(div.cnblogs_code_hide).length == 0) {
if (parseint($(this).css(height), 10) > 30) {
showcopycode($(this));
var regex = /
).insertafter($(textarea));
}
function getcnblogscodecontainer(element) {
var codecontainer = $(element).parent().parent().parent().find(pre);
if (codecontainer.length == 0) {
codecontainer = $(element).parent().parent().parent().find(div).first();
}
return codecontainer;
}
function getcnblogscodetext(codecontainer) {
var cbcode = '\n' + $(codecontainer).html()
.replace(/ /g, ' ')
.replace(/
/ig, '\n')
.replace(/]*>/g, '');
cbcode = cbcode.replace(/\n(\s*\d+)/ig, '\n');
cbcode = cbcode.replace(/\n/g, '\r\n');
if (typeof encoder != undefined) {
cbcode = encoder.htmldecode(cbcode);
}
cbcode = $.trim(cbcode);
return cbcode;
}
function showruncode(element) {
var codecopydiv = $(element).find(div.cnblogs_code_toolbar);
if (codecopydiv.length) {
$(codecopydiv).append('运行代码');
}
}
function runjscode(element) {
var codecontainer = getcnblogscodecontainer(element);
var cbcode = getcnblogscodetext(codecontainer);
var newwin = window.open('', _blank, '');
newwin.document.open('text/html', 'replace');
newwin.opener = null;
newwin.document.write(cbcode);
newwin.document.close();
}
//#endregion
打包下载