abcdefghjklm
Page 4 of 7 • Share
Page 4 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); //Kiểm tra tính hợp lệ của tag
b.tag||(b.tag=a); //kiểm tra điều kiện?
b.defaultAttr?"string"===typeof b.defaultAttr&&(b.defaultAttr={"default":b.defaultAttr}):b.defaultAttr={};
//Kiểm tra defaultAttr có phải string không và có default không
"close" in b||(b.close=!1); //Kiểm tra có tag close không
h.bbcodes[a]=b; //Gán b vào bbcode ở key a
return this //Trả về
},
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, đưa codes vào c
{
store.push(c.innerHTML); //Đẩy html của c vào store
c.innerHTML = ''; //Biến html của c thành rỗng
}
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)) //Kiểm tra xem k có phải là string hay không, kết hợp với điều kiện k không phải là phần tử cuối của mảng
for (;-1!==Html.indexOf(k);) Html=Html.replace(k,e[1]); // Chạy vòng lặp đẩy từng phần từ HTML vào mảng basic
else Html=Html.replace(k,e[1])
}
for (var l in bbcodes) //Luôn đúng?
if (bbcodes.hasOwnProperty(l)&&(basic=bbcodes[l])&&basic.replacement&&basic.tag) //Kiểm tra xem trong bbcode có sẵn l chưa, kết hợp với
//kiểm tra xem
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)
- Code:
/*
parseTag
Hàm 3 biến
a=Html
b=basic
c=basic.close
d=insen
e=open
k=close
*/
parseTag: function(Html,basic,basic.close)
{
for
(
var
insen=basic.insensitive?"i":"", //Kiểm tra nhạy chữ viết hoa
open="\\["+basic.tag+"[^\\]]*?\\]", //Tag mở
close="\\[\\/"+basic.tag+"\\]", //Tag đóng
d=basic.close?RegExp("("+open+")(?!.*"+open+")((?:.|[\\r\\n])*?)"+close,d):RegExp(open,d), //Kiểm tra tag đơn hay đôi
l=[];
insen.test(Html); //Kiểm tra trong html có hay không
)
Html=Html.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
},
- Code:
LGBB.add
(
'div',
{
close : true,
insensitive : true,
replacement : '<div style="{ATTR}" id="{ATTR-ID}">{CONTENT}</div>',
defaultAttr : {
'default' : '',
'id' : ''
}
}
);
Last edited by Admin on Sat Feb 21, 2015 9:34 pm; edited 1 time in total
Re: abcdefghjklm
- Code:
$(function()
{
var c = "", a, d = 0, b = 0;
$("div.post").each(function()
{
var e = $(".postprofile dt", this).text(); //e là profile hiện tại
e != c //Kiểm tra xem profile có trống không
? //Nếu có
(
d++, //d tăng
b++, //b tăng
a = $(this), //a là profile hiện tại
(b % 2) != ((d % 2) && a.toggleClass("row1 row2")), //d%2 trả true nếu d lẻ, b%2
c = e //c là profile hiện tại
)
: //Nếu không
(
b++, //b tăng
$(a).find("div.signature_div").remove(), //
$("div.postbody", a).append
(
$("div.postbody", this).attr("class", "doublepost").attr
(
"id", $(this).attr("id").replace(/^p([0-9]+)$/, "$1")
)
),
$(this).remove()
)
});
var f = location.hash;
location.hash = "";
location.hash = f
});
Last edited by Admin on Fri Feb 20, 2015 4:51 pm; edited 1 time in total
Page 4 of 7 • 1, 2, 3, 4, 5, 6, 7
Page 4 of 7
Permissions in this forum:
You cannot reply to topics in this forum
|
|