Post list


2012-09-15

홍선생님 말씀데로 '82번 줄 부터 113번 줄 까지의 내용을 바꿔봄, 실패ㅠㅠㅠㅠㅠ




질문요약:


홍선생님의 본문 코드에서 





82번줄은

// 검색 결과를 뿌리는 함수
pongSearch: function (z) {



113번 줄은
obj.obj.appendChild(li);
}

/* page 뿌려줌. */
obj.pongPgno(z);
},






이  82번 줄 부터 113번 줄 까지의 내용을 홍선생님이 댓글로 달았던 걸로 바꿔주고,

밑에 CSS 부분은 소스를 적용된 가젯 가장 앞부분에 넣어주엇지만,  그런데, 여전히,, 목록리스트 사라지고 'Post list'타이틀만  보입니다.ㅠㅠ

그래서 113번줄까지가 아니라, 117번줄까지지가 아닐까 해서요, 왜냐면, 댓글에 달아주신 코드부분 끝이 "

/* page 뿌려줌. */
g1sObj.pongPgno(z);
 },


<<<----이 부분인데, 원 코드에도 117번줄까지가 비슷한게 잇어서요,,,그래서 또82~ 117번줄까지 바꿔봤지만,,, 그런데, 여전히,, 목록리스트 사라지고 'Post list'타이틀만  보입니다.ㅠㅠ  



**제가, 이코드를 수정한건 블로그주소[이건 당연히바꿔야한다고 하셧고]와
리스트 글개수를 '40'개로 한거에요ㅠ*









-------------상세한 질문, 따라하다 실패한 코드도 복사해 두어서 글이 길음----------


http://creatorhong.blogspot.kr/2012/02/blogger-label-posts-list.html


82번 줄 부터 113번 줄 까지의 내용을 제가 댓글로 달았던 걸로 바꿔주고,

밑에 CSS 부분은 소스가 적용된 가젯 가장 앞부분에 넣어주기





82번줄은

// 검색 결과를 뿌리는 함수
pongSearch: function (z) {



113번 줄은
obj.obj.appendChild(li);
}

/* page 뿌려줌. */
obj.pongPgno(z);
},








-------저 82번 줄 부터 113번 줄 까지 를 아래코드 부분으로-------->>


pongSearch: function (z) {
g1sObj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (g1sPage.no-1)*g1sPage.max; i < g1sPage.no*g1sPage.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = g1sPage.home + '/search';
if(g1sPage.label != '')
url += '/label/' + g1sPage.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = g1sObj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
}
//제목만 a.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);
a1.innerHTML = g1sObj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = g1sPage.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = g1sObj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
g1sObj.obj.appendChild(li);
}

/* page 뿌려줌. */
g1sObj.pongPgno(z);
},


<<<-------------로 바꿈. 즉  82번 줄 부터 113번 줄 까지의 내용을 바꾸고,

+ 밑에 CSS 부분은 소스가 적용된 가젯 가장 앞부분에 넣어주기 결과----->>>>




<style>
.g1sPostsPost{clear: both;}
.g1sPostsLeft{float:left; width:150px;}
</style>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {
g1sObj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (g1sPage.no-1)*g1sPage.max; i < g1sPage.no*g1sPage.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = g1sPage.home + '/search';
if(g1sPage.label != '')
url += '/label/' + g1sPage.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = g1sObj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
}
//제목만 a.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);
a1.innerHTML = g1sObj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = g1sPage.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = g1sObj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
g1sObj.obj.appendChild(li);
}

/* page 뿌려줌. */
g1sObj.pongPgno(z);
},



/* page 뿌려줌. */

obj.pongPgno(z);

},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};






page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>



<<<<<-----------그런데, 보시다 싶히, ,,, 목록리스트 사라지고 'Post list'타이틀만  보입니다.ㅠㅠ


그래서 혹시,,,   82번 줄 부터 113번이 아닌 117번 줄이 아닐까 해서,,, 




117번 줄
obj.obj.appendChild(li); }
/* page 뿌려줌. */
obj.pongPgno(z);
},







까지 바꾸어 봣습니다^^, 그래서 수정된코드는  즉,
/* page 뿌려줌. */

obj.pongPgno(z);

},

이 부분을 잘라낸것으로------>>>



<style>
.g1sPostsPost{clear: both;}
.g1sPostsLeft{float:left; width:150px;}
</style>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {
g1sObj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (g1sPage.no-1)*g1sPage.max; i < g1sPage.no*g1sPage.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = g1sPage.home + '/search';
if(g1sPage.label != '')
url += '/label/' + g1sPage.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = g1sObj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
}
//제목만 a.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);
a1.innerHTML = g1sObj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = g1sObj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = g1sPage.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = g1sObj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
g1sObj.obj.appendChild(li);
}

/* page 뿌려줌. */
g1sObj.pongPgno(z);
},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};






page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>



<<<-------------그런데, 보시다 싶히, ,,, 역시 목록리스트 사라지고 'Post list'타이틀만  보입니다.ㅠㅠ



**제가, 이코드를 수정한건 블로그주소[이건 당연히바꿔야한다고 하셧고]와
리스트 글개수를 '40'개로 한거에요ㅠ*
























---------현재까지 정상적인 코드------------->>>



<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {

obj.obj.innerHTML = '';



/* 글 목록을 뿌려 줌. */

for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {

//예외처리.

if(i >= z.feed.openSearch$totalResults.$t)

break;



//변수선언.

var li = document.createElement("li");

var a = document.createElement('a');



//link로 사용할 base url.

var url = page.home + '/search';

if(page.label != '')

url += '/label/' + page.label;



//최종 link를 url 입력.

if (i == 0)

a.href = url + '?max-results=1';

else {

var pub=obj.changeTime(z.feed.entry[i-1].published.$t);

a.href = url + '?updated-max=' + pub

+ '&max-results=1&pgno='+page.no;

}

a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);



//append

li.appendChild(a);

obj.obj.appendChild(li);

}



/* page 뿌려줌. */

obj.pongPgno(z);

},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};






page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>


 <<<---------현재까지 정상적인 코드-------------


---------->>홍선생님이 수정하신 코드--->>

pongSearch: function (z) {
obj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = page.home + '/search';
if(page.label != '')
url += '/label/' + page.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = obj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
}
//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);
a1.innerHTML = obj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
obj.obj.appendChild(li);
}

/* page 뿌려줌. */
obj.pongPgno(z);
},


<<--------------------




그래서  다시 수정----->>>>


<style>
.g1sPostsPost{clear: both;}
.g1sPostsLeft{float:left; width:150px;}
</style>

<div>

<div id="posts" style="padding: 10px;">

</div>

<div align="center" id="posts-pgno" style="cursor: pointer;">

</div>

</div>

<script language="Javascript" type="text/javascript">

/** url의 Parameter를 얻는 Class. **/

var request = {

parameter: function(name) {

return this.parameters()[name];

},



parameters: function() {

var result = {};

var url = window.location.href;

var parameters = url.slice(url.indexOf('?') + 1).split('&');



for(var i = 0; i < parameters.length; i++) {

var parameter = parameters[i].split('=');

result[parameter[0]] = parameter[1];

}

return result;

}

}



/** Page의 정보를 저장. **/

var page = {

//초기화.

init: function(home,max){

page.home = home;

page.max = max;

page.label = '';

page.no = 1;

},



//url의 parameter에서 pgno 값을 읽어 옮.

setPage: function(){

var url = window.location.href;



var pl = url.lastIndexOf("/label/");

var pq = url.lastIndexOf("?");



if(pl != -1)

page.label = url.substr(pl+7,((pq!=-1)?pq:url.length)-(pl+7));



if(url.indexOf("pgno") != -1)

page.no = request.parameter("pgno");



}



}

/** feed를 parsing 하여 결과 뿌려 줌. **/

var obj = {

init: function () {

obj.obj = document.getElementById('posts');

obj.pgno = document.getElementById('posts-pgno');

},



// 검색을 요청하는 함수

pingSearch: function () {

//변수 선언.

obj.s = document.createElement('script');

obj.s.type = 'text/javascript';

obj.s.charset = 'utf-8';



//feed callback 함수를 이용 json 객체 구한 후 pongSearch 함수호출.

if(page.label == '')

obj.s.src = '' + page.home +

'/feeds/posts/summary/?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';

else

obj.s.src = '' + page.home + '/feeds/posts/summary/-/'

+page.label+'?max-results='+(page.no*page.max)

+'&alt=json-in-script&callback=obj.pongSearch';



//append.

document.getElementsByTagName('head')[0].appendChild(obj.s);

},



// 검색 결과를 뿌리는 함수

pongSearch: function (z) {
obj.obj.innerHTML = '';

/* 글 목록을 뿌려 줌. */
for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {
//예외처리.
if(i >= z.feed.openSearch$totalResults.$t)
break;

//변수선언.
var li = document.createElement("li");
var div = document.createElement('div');
var a1 = document.createElement('a');
var a2 = document.createElement('a');

//link로 사용할 base url.
var url = page.home + '/search';
if(page.label != '')
url += '/label/' + page.label;

//최종 link를 url 입력.
if (i == 0){
a1.href = url + '?max-results=1';
a2.href = url + '?max-results=1';
}
else {
var published = obj.changeTime(z.feed.entry[i - 1].published.$t);
a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
}
//제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

//시간.
var ldiv = document.createElement('div');
var published = z.feed.entry[i].published.$t;
var y,mm,d,h,m,s;
y = parseInt(published.substr(0,4));
mm = parseInt(published.substr(5,2));
d = parseInt(published.substr(8,2));
h = parseInt(published.substr(11,2));
m = parseInt(published.substr(14,2));
s = parseInt(published.substr(17,2));
var date = new Date(y, mm, d, h, m, s);
var dt;
if(published.charAt('+'))
dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
else
dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
var rdate = new Date(date.getTime() + dt);
a1.innerHTML = obj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

//제목
var rdiv = document.createElement('div');
div.className = "g1sPostsPost";
ldiv.className = "g1sPostsLeft";
rdiv.className = "g1sPostsRight";
a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
rdiv.appendChild(a2);
//라벨
for(var j in z.feed.entry[i].category){
var a3 = document.createElement('a');
a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
rdiv.appendChild(a3);
}

ldiv.appendChild(a1);
div.appendChild(ldiv);
div.appendChild(rdiv);

//append
li.appendChild(div);
obj.obj.appendChild(li);
}

/* page 뿌려줌. */
obj.pongPgno(z);
},



// page를 뿌려주는 함수.

pongPgno: function(z){

obj.pgno.innerHTML = '';

var before = document.createElement('a');

var next = document.createElement('a');



var ten = parseInt((page.no-1)/10);

var total = z.feed.openSearch$totalResults.$t;



/* before page */

before.innerHTML = ' << ';

if(ten>0)

obj.onMouseDown(before, ten*10);

obj.pgno.appendChild(before);



/* page number */

for(var i=ten*10; i< (ten+1)*10; i++){

if(i >= total/page.max)

break;

var a = document.createElement('a');

obj.onMouseDown(a,i+1);



a.innerHTML = ' ' + (i+1) + ' ';



if(i+1 == page.no)

a.style.color = 'yellow';

obj.pgno.appendChild(a);

}



/* next page */

next.innerHTML = ' >> ';

if(ten< parseInt(total/page.max/10))

obj.onMouseDown(next, (ten+1)*10+1);

obj.pgno.appendChild(next);

},



//mouse click event.

onMouseDown: function(a, i){

a.onmousedown = function(){

page.no = i;

obj.pingSearch();

}

},



//Time 에러 수정.

changeTime: function(str){

var s = str.lastIndexOf('.')-1;

var e = str.lastIndexOf('+')+1;



if(e<1){

e = str.lastIndexOf('-')+1;

var str2 = str.substr(0,s) + '-' + str.substr(e,100);

}

else{

var str2 = str.substr(0,s) + '%2B' + str.substr(e,100);

}

return str2;

},





// HTML태그 안 먹게 하는 함수

escapeHtml: function (str) {

str = str.replace(/&/g, "&");

str = str.replace(/</g, "<");

str = str.replace(/>/g, ">");

return str;

}

};






page.init('http://hi5656.blogspot.com', 40);

page.setPage();

obj.init();

obj.pingSearch();

</script>



댓글 2개:

  1. 아. 죄송합니다. 117번째가 맞구요.
    제가 댓글에 달았던 소스가 잘못된 소스네요.
    그리고 지금 적용이 잘 안되는 것도 제 실수네요.
    g1sObj 부분을 모두 obj로 바꿔주시면 될 듯 합니다.
    g1sObj는 제 블로그에 적용된 변수인데 그걸 그냥 적었네요.

    수정된 코드 다시 적습니다.
    이 코드를 위의 원본 코드의 82번 줄부터 117번 줄부분과 바꿔주시면 됩니다.

    pongSearch: function (z) {
    obj.obj.innerHTML = '';

    /* 글 목록을 뿌려 줌. */
    for (var i = (g1sPage.no-1)*g1sPage.max; i < g1sPage.no*g1sPage.max; i++) {
    //예외처리.
    if(i >= z.feed.openSearch$totalResults.$t)
    break;

    //변수선언.
    var li = document.createElement("li");
    var div = document.createElement('div');
    var a1 = document.createElement('a');
    var a2 = document.createElement('a');

    //link로 사용할 base url.
    var url = g1sPage.home + '/search';
    if(g1sPage.label != '')
    url += '/label/' + g1sPage.label;

    //최종 link를 url 입력.
    if (i == 0){
    a1.href = url + '?max-results=1';
    a2.href = url + '?max-results=1';
    }
    else {
    var published = obj.changeTime(z.feed.entry[i - 1].published.$t);
    a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
    a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+g1sPage.no;
    }
    //제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

    //시간.
    var ldiv = document.createElement('div');
    var published = z.feed.entry[i].published.$t;
    var y,mm,d,h,m,s;
    y = parseInt(published.substr(0,4));
    mm = parseInt(published.substr(5,2));
    d = parseInt(published.substr(8,2));
    h = parseInt(published.substr(11,2));
    m = parseInt(published.substr(14,2));
    s = parseInt(published.substr(17,2));
    var date = new Date(y, mm, d, h, m, s);
    var dt;
    if(published.charAt('+'))
    dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
    else
    dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
    var rdate = new Date(date.getTime() + dt);
    a1.innerHTML = obj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

    //제목
    var rdiv = document.createElement('div');
    div.className = "g1sPostsPost";
    ldiv.className = "g1sPostsLeft";
    rdiv.className = "g1sPostsRight";
    a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
    rdiv.appendChild(a2);
    //라벨
    for(var j in z.feed.entry[i].category){
    var a3 = document.createElement('a');
    a3.href = g1sPage.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
    a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
    rdiv.appendChild(a3);
    }

    ldiv.appendChild(a1);
    div.appendChild(ldiv);
    div.appendChild(rdiv);

    //append
    li.appendChild(div);
    obj.obj.appendChild(li);
    }

    /* page 뿌려줌. */
    obj.pongPgno(z);
    },

    답글삭제
  2. 아 또 틀렸네요.
    다시 소스 첨부합니다.

    아.... 지우면 밑에 분들 댓글도 지워질려나.....
    아무튼 수정된 코드 다시 적습니다.
    이 코드를 위의 원본 코드의 82번 줄부터 117번 줄부분과 바꿔주시면 됩니다.

    pongSearch: function (z) {
    obj.obj.innerHTML = '';

    /* 글 목록을 뿌려 줌. */
    for (var i = (page.no-1)*page.max; i < page.no*page.max; i++) {
    //예외처리.
    if(i >= z.feed.openSearch$totalResults.$t)
    break;

    //변수선언.
    var li = document.createElement("li");
    var div = document.createElement('div');
    var a1 = document.createElement('a');
    var a2 = document.createElement('a');

    //link로 사용할 base url.
    var url = page.home + '/search';
    if(page.label != '')
    url += '/label/' + page.label;

    //최종 link를 url 입력.
    if (i == 0){
    a1.href = url + '?max-results=1';
    a2.href = url + '?max-results=1';
    }
    else {
    var published = obj.changeTime(z.feed.entry[i - 1].published.$t);
    a1.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
    a2.href = url + '?updated-max=' + published + '&max-results=1&pgno='+page.no;
    }
    //제목만 a.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);

    //시간.
    var ldiv = document.createElement('div');
    var published = z.feed.entry[i].published.$t;
    var y,mm,d,h,m,s;
    y = parseInt(published.substr(0,4));
    mm = parseInt(published.substr(5,2));
    d = parseInt(published.substr(8,2));
    h = parseInt(published.substr(11,2));
    m = parseInt(published.substr(14,2));
    s = parseInt(published.substr(17,2));
    var date = new Date(y, mm, d, h, m, s);
    var dt;
    if(published.charAt('+'))
    dt = (parseInt(published.substr(25,2)) * 60 + parseInt(published.substr(28,2)))*60000;
    else
    dt = (-parseInt(published.substr(25,2)) * 60 - parseInt(published.substr(28,2)))*60000;
    var rdate = new Date(date.getTime() + dt);
    a1.innerHTML = obj.escapeHtml((1900+rdate.getYear()) +"."+ rdate.getMonth() +"."+ rdate.getDate() +". "+ rdate.getHours() +":"+ rdate.getMinutes() +":"+ ((rdate.getSeconds()<10)?"0"+rdate.getSeconds():rdate.getSeconds()));

    //제목
    var rdiv = document.createElement('div');
    div.className = "g1sPostsPost";
    ldiv.className = "g1sPostsLeft";
    rdiv.className = "g1sPostsRight";
    a2.innerHTML = obj.escapeHtml(z.feed.entry[i].title.$t);
    rdiv.appendChild(a2);
    //라벨
    for(var j in z.feed.entry[i].category){
    var a3 = document.createElement('a');
    a3.href = page.home + '/search/label/' + z.feed.entry[i].category[j].term + '?max-results=1';
    a3.innerHTML = obj.escapeHtml('['+z.feed.entry[i].category[j].term+']');
    rdiv.appendChild(a3);
    }

    ldiv.appendChild(a1);
    div.appendChild(ldiv);
    div.appendChild(rdiv);

    //append
    li.appendChild(div);
    obj.obj.appendChild(li);
    }

    /* page 뿌려줌. */
    obj.pongPgno(z);
    },

    답글삭제