十二月
17
一直没有发现wordpress的编辑器在你想输入一些代码的时候是那么不方便,因为我一直都在使用coolcode显示文章中的代码。直到我的上一篇文章,当我想插入单个标签的时候,比如</p>,我才发现是多么的痛苦。一两个标签的话直接改也不算麻烦,但是如果是多个独立分开的标签呢?那要改多少次?的确,你想显示代码的话用coolcode插件就可以了。但这个插件有一个特点,每次引用必然是独立成行的,这样整篇文章就变得很难看了。我尝试使用WP自带的<code>标签,发现在浏览文章的时候不能解析<code>,网上也搜索不到解决办法。
经过一番努力,自己修改了一下Wordpress的快速代码按钮(源文件是wp-includes/js/quicktags.js),终于大功告成!下面把我的方法共享给需要的人,记得先备份文件啊。
找到
edButtons[edButtons.length] =
new edButton('ed_code'
,'代码'
new edButton('ed_code'
,'代码'
在它上面加上
edButtons[edButtons.length] =
new edButton('ed_entity'
,'Html-Entity'
,''
,''
,'e'
,-1
);// special case
new edButton('ed_entity'
,'Html-Entity'
,''
,''
,'e'
,-1
);// special case
找到
else if (button.id == 'ed_link') {
在它上面加上
else if (button.id == 'ed_entity') {
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertEntity(edCanvas, ' + i + ');" value="' + button.display + '" />');
}
document.write('<input type="button" id="' + button.id + '" accesskey="' + button.access + '" class="ed_button" onclick="edInsertEntity(edCanvas, ' + i + ');" value="' + button.display + '" />');
}
找到
function edInsertLink(myField, i, defaultValue) {
在它上面加上
function edInsertEntity(myField, i) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
if (sel.text.length > 0) {
sel.text = HtmltoEntity(sel.text);
}
else {
var myValue = prompt("In Put Some HTML Text", '');
if (myValue) {
sel.text = HtmltoEntity(myValue);
}
}
myField.focus();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var cursorPos = startPos;
var scrollTop = myField.scrollTop;
if (startPos != endPos) {
var temp = HtmltoEntity(myField.value.substring(startPos, endPos));
}
else {
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
}
myField.value = myField.value.substring(0, startPos)
+ temp
+ myField.value.substring(endPos, myField.value.length);
cursorPos += temp.length;
myField.focus();
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;
myField.scrollTop = scrollTop;
}
else {
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
myField.value += temp;
myField.focus();
}
}
function HtmltoEntity(str){
var match = [
'<',
'>',
'"',
"'"
];
var replace = [
'<',
'>',
'"',
'''
];
str = str.split("&");
str = str.join("&");
for(var i=0;i<match.length;i++){
var ms = eval("/"+match[i]+"/g");
str = str.replace(ms, replace[i]);
}
return str;
}
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
if (sel.text.length > 0) {
sel.text = HtmltoEntity(sel.text);
}
else {
var myValue = prompt("In Put Some HTML Text", '');
if (myValue) {
sel.text = HtmltoEntity(myValue);
}
}
myField.focus();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var cursorPos = startPos;
var scrollTop = myField.scrollTop;
if (startPos != endPos) {
var temp = HtmltoEntity(myField.value.substring(startPos, endPos));
}
else {
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
}
myField.value = myField.value.substring(0, startPos)
+ temp
+ myField.value.substring(endPos, myField.value.length);
cursorPos += temp.length;
myField.focus();
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;
myField.scrollTop = scrollTop;
}
else {
var temp = HtmltoEntity(prompt("In Put Some HTML Text", ''));
myField.value += temp;
myField.focus();
}
}
function HtmltoEntity(str){
var match = [
'<',
'>',
'"',
"'"
];
var replace = [
'<',
'>',
'"',
'''
];
str = str.split("&");
str = str.join("&");
for(var i=0;i<match.length;i++){
var ms = eval("/"+match[i]+"/g");
str = str.replace(ms, replace[i]);
}
return str;
}
这样就OK了,其它我还用类似的方法加了coolcode的快速按钮,这里不赘述了。
订阅评论
发表评论