cnblogs コードのハイライト コードのコピー 問題解決 実装 Code_Javascript スキル

WBOY
リリース: 2016-05-16 17:58:35
オリジナル
1166 人が閲覧しました

予期せぬことに、コードのコピーの問題が最近明らかになりました (2012 年 12 月)。さもなければ、すべてのコンテンツは 1 行であり、ツールを持っている人だけがコードをすぐに見ることができます。この方法では、コードは非常に簡単に使用でき、コピーすることができます。毎回直接変換する必要はありません。
この記事では主にテクノロジーについて説明します。困っている友達がどのような方法を参考にできるかを見てみましょう。バックアップを容易にするために、最初にコードのコピーをパッケージ化し、必要に応じて自分で調べてください。

コードをコピー コードは次のとおりです:

//#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 = //gi;
if (regex.test($(this).text())) {
showRunCode($(this));
}
}
}
});
}
});

function showCopyCode(element) {
$(element).append('
;コードをコピー') 🎜> }

function loadEncoderJs() {
var encoderJs = document.createElement('script');
encoderJs.type = 'text/javascript';
encoderJs.src = ' http: //common.cnblogs.com/script/encoder.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(encoderJs, node); 🎜> }

function copyCnblogsCode(element) {
var codeContainer = getCnblogsCodeContainer(element);
var cbCode = getCnblogsCodeText(codeContainer);
var textarea = document.createElement('textarea' );
$(textarea).val(cbCode).select();
$(textarea).css("width", $(codeContainer).css("width")); (textarea ).css("height", $(codeContainer).css("height"));
$(textarea).css("font-family", "Courier New"); textarea) .css("font-size", "12px");
$(textarea).css("line-height", "1.5");
$(codeContainer).parent().html (textarea );
$(textarea).select();
$("
Ctrl C を押してコードをコピーします
").insertAfter($(textarea)); >}

function getCnblogsCodeContainer(element) {
var codeContainer = $(element).parent().parent().parent().find("pre"); .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, 'rn')
if (エンコーダーの種類 != unknown) {
cbCode = エンコーダ .htmlDecode(cbCode);
cbCode = $.trim(cbCode)
return cbCode;

関数 showRunCode(element) {
var codeCopyDiv = $(element).find("div.cnblogs_code_toolbar");
if (codeCopyDiv.length) {
$(codeCopyDiv).append(' a href= "javascript:void(0);" onclick="runJsCode(this)">コードを実行');
}
}

function runJsCode (要素) {
var codeContainer = getCnblogsCodeContainer(element);
var newwin = window.open('', "_blank", ''); 🎜> newwin.document.open('text/html', 'replace');
newwin.opener = null;
newwin.document.close(); ;
}

//#endregion



パッケージのダウンロード
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート