abcdefghjklm
Page 3 of 7 • Share
Page 3 of 7 • 1, 2, 3, 4, 5, 6, 7
Re: abcdefghjklm
- Code:
/*
Các hàm
expando: nothing
bbcodes: array, nothing
basics: array, nothing
attrReg: RegExp
parseTag: 3 biến
swapReplacers: 3 biến
parse: 1 biến
add: 2 biến
add swap: 2 biến
*/
(function()
{
var
h=
{
expando:"{LGBB:"+(new Date).getMilliseconds()+"}", //Lấy thời gian theo mili giây
bbcodes:{},
basics:[],
attrReg:/([\w-]+)=("|'|)(.*?)\2(?=[\s\]])/g, //Nhận diện attribute
parseTag: function(a,b,c)
{
for
(
var
d=b.insensitive?"i":"",
e="\\["+b.tag+"[^\\]]*?\\]", //Tag mở
k="\\[\\/"+b.tag+"\\]", //Tag đóng
d=c?RegExp("("+e+")(?!.*"+e+")((?:.|[\\r\\n])*?)"+k,d):RegExp(e,d),
l=[];
d.test(a);
)
a=a.replace(d,function(a,d,e)
{
c||(d=a);
var f={},g;
for (g in b.defaultAttr) f[g]=b.defaultAttr[g];
d=h.attrReg.test(d)?d.match(h.attrReg):[];
if (d.length) for
(var k=0;g=d[k++];)
(a=/([\w-]+)=['"]?(.*?)['"]?$/.exec(g))&&a.length&&(a[1]===b.tag&&(a[1]="default"),f[a[1]]=a[2]);
if (b.validate&&(c?!b.validate.call(b,e,f):!b.validate.call(b,f))) return l.push(a),h.expando;
a=b.replacement;
b.replace&&(g=c?b.replace.call(b,e,f):b.replace(f),"string"===typeof g?a=g:g&&"object"===typeof g&&(e=g.content||e,f=g.attr||f,"string"===typeof f&&(f={"default":f})));
return h.swapReplacers(a,e,f)
});
for (d=0;e=l[d++];) a=a.replace(h.expando,e);
return a
},
swapReplacers: function(a,b,c)
{
if(!a) return"";
b||(b="");
c||(c={});
a=a.replace(/{CONTENT}/g,b);
for (var d in c) a=a.replace(RegExp("{ATTR-"+d.toUpperCase()+"}","g"),c[d]);
c["default"]&&(a=a.replace(/{ATTR}/g,c["default"]));
return a.replace(/{ATTR(-[A-Z-]+)?}/g,"")
},
parse: function(a)
{
var b=h.bbcodes, c=h.basics;
h.expando="{LGBB:"+(new Date).getMilliseconds()+"}";
for (var d=0,e;e=c[d++];)
{
var k=e[0];
if ("string"===typeof k&&-1===e[1].indexOf(k))
for (;-1!==a.indexOf(k);) a=a.replace(k,e[1]);
else a=a.replace(k,e[1])
}
for (var l in b)
if (b.hasOwnProperty(l)&&(c=b[l])&&c.replacement&&c.tag)
try
{
a=h.parseTag(a,c,c.close)
} catch(m) {console.log("LGBB: Error parsing "+c.tag+" tag.",m)} return a
},
add: function(a,b)
{
if (!/^\w+$/.test(a)) throw new Exception("Invalid LGBB tag name: "+a);
b.tag||(b.tag=a);
b.defaultAttr?"string"===typeof b.defaultAttr&&(b.defaultAttr={"default":b.defaultAttr}):b.defaultAttr={};
"close" in b||(b.close=!1);
h.bbcodes[a]=b;
return this
},
addSwap: function(a,b)
{
h.basics.push([a,b]);
return this
}
};
window.LGBB=h
})();
$(function(){
var p = $('.post .content');
for (var i = 0, post; (post = p[ i++ ]); ) //
{
var codes = post.getElementsByTagName('code'), store = []; //
for (var j = 0, c; (c = codes[j++]); ) //j=0, mỗi vòng tăng j thêm 1, cho HTML của c là rỗng
{
store.push(c.innerHTML);
c.innerHTML = '';
}
post.innerHTML = LGBB.parse( post.innerHTML ); //Tiến hành dịch
for(var s, j = 0; (s = store[j]); ) codes[j++].innerHTML = s; //Đưa ra code sau khi dịch
}
});
- Code:
/*
parse
Hàm 1 biến
a=Html / innerHTML
b=bbcode
c=basic
*/
parse: function(a)
{
var bbcodes=h.bbcodes, basic=h.basics;
h.expando="{LGBB:"+(new Date).getMilliseconds()+"}";
for (var d=0,e;e=basic[d++];) //Lấy từng phần tử trong mảng basic
{
var k=e[0]; //Bắt đầu từ phần tử đầu tiên của mảng basic
if ("string"===typeof k&&-1===e[1].indexOf(k))
for (;-1!==Html.indexOf(k);) Html=Html.replace(k,e[1]);
else Html=Html.replace(k,e[1])
}
for (var l in bbcodes)
if (bbcodes.hasOwnProperty(l)&&(basic=bbcodes[l])&&basic.replacement&&basic.tag)
try
{
Html=h.parseTag(Html,basic,basic.close) //Dịch tag
} catch(m) {console.log("LGBB: Error parsing "+basic.tag+" tag.",m)} return Html //Bắt lỗi dịch và trả về Html (a)
},
Page 3 of 7 • 1, 2, 3, 4, 5, 6, 7
Page 3 of 7
Permissions in this forum:
You cannot reply to topics in this forum
|
|