[AJAX] js_rss_to_fieldset.js RSS를 보기좋도록 만드는 함수



[소스다운로드 js_rss_to_fieldset.js]
[
소스다운로드 mb_ajax,js]

 ex>
<DIV id=test11 style="BORDER-RIGHT: #ffccdd 5px solid; BORDER-TOP: #ffccdd 5px solid; BORDER-LEFT: #ffccdd 5px solid; WIDTH: 200px; BORDER-BOTTOM: #ffccdd 5px solid"></DIV>
<DIV id=test12 style="BORDER-RIGHT: #3399ff 5px solid; BORDER-TOP: #3399ff 5px solid; BORDER-LEFT: #3399ff 5px solid; WIDTH: 500px; BORDER-BOTTOM: #3399ff 5px solid"></DIV>
<SCRIPT>
var url = '/for2007/rss.php?b_id=guset&type=rss';
js_rss_to_fieldset(2,url,'test11' ,10,3);
var url = '/for2007/rss.php?b_id=tech&type=rss&mm=2';
js_rss_to_fieldset(1,url,'test12' ,20,5);
</SCRIPT>


/*========================================
 js_rss_to_fieldset.js
 RSS를 알아보기 좋도록 바꿔준다.

 [타입] : 1(fieldset형),2(div게시판형)
 [URL] : RSS의 주소(RSS1기준)
 [붙일 타겟 ID] : 해당 ID를 가진 객체의 자식으로 붙는다.
 [글자수 제한] : 제목의 글자수 제한
 [글 수 제한] : 보여길 글의 수를 제한
 ex>
 js_rss_to_fieldset([타입],[URL],[붙일 타겟 ID],[글자수 제한],[글 수 제한]);
 js_rss_to_fieldset(1,url,'yyy',10,5);
 js_rss_to_fieldset(2,url,'xxx',20,6);


 연계>
 mb_ajax.js 전체 (AJAX연결용)

 제한사항>
 AJAX는 같은 도메인 내에서만 가능!

 mins01,mins,공대여자
 MSN,NateOn : mins01(at)lycos.co.kr
 2007-01-30
 "공대여자는 예쁘다."를 나타내야만 쓸 수 있습니다.
//========================================*/
var js_rss_to_fieldset = function(type,url,target_id,cutstr,rowlimit){
 var test_ajax = new mb_ajax();
 if(!cutstr)cutstr=20;
 if(!rowlimit) rowlimit=999; 
 if(!type){type=1;}
 if(type==1){
 var fn_name = js_rss_to_fieldset_process_type1;
 }else if(type==2){
 var fn_name = js_rss_to_fieldset_process_type2;
 }else{
 var fn_name = js_rss_to_fieldset_process_type1; 
 }
 eval("var t=function(res){document.getElementById('"+target_id+"').appendChild("+fn_name+"(res,"+cutstr+","+rowlimit+"));}");  
 test_ajax.sendRequest(t,'','GET',url);
}
var js_rss_to_fieldset_process_type1 = function(res,cutstr,rowlimit){
 var arr_channel_items = rss1_to_array(res);
 var channel = arr_channel_items[0]; 
 var items = arr_channel_items[1];
 var fieldset_ori = document.createElement('fieldset');
 fieldset_ori.style.fontSize='12px';
 fieldset_ori.style.margin='5px';
 fieldset_ori.style.border='1px solid #cccccc';
 var legend_ori = document.createElement('legend');
 legend_ori.style.padding='2px 5px';
 legend_ori.style.border='1px solid #cccccc';
 var div_ori = document.createElement('div');
 var span_ori = document.createElement('span');
 span_ori.style.margin='0px 10px';
 var a_ori = document.createElement('a');
 a_ori.style.color='#333333';
 var field0,legend0,item_obj;
 //======================================== channel 처리 /최외각 처리
 var root = fieldset_ori.cloneNode(true);
 var root_legend=legend_ori.cloneNode(true);
 var root_legend_a=a_ori.cloneNode(true);
 if(channel['title'].length>cutstr){
  channel['title']=channel['title'].substr(0,cutstr)+'...';
 }   
 root_legend_a.innerHTML = channel['title'];
 root_legend_a.href = channel['link'];
  channel['description']=channel['description'].replace(/\&lt;/gi,'<');
  channel['description']=channel['description'].replace(/\&gt;/gi,'>');
  channel['description']=channel['description'].replace(/\&amp;/gi,'&');
  channel['description']=channel['description'].replace(/\&quot;/gi,'\"');
  channel['description']=channel['description'].replace(/\&nbsp;/gi,' ');
//  item_obj['description']=item_obj['description'].replace(/<[^>]*?>/gi,'');  
 root_legend_a.title = channel['description'];
 root_legend.appendChild(root_legend_a);
 root.appendChild(root_legend);
 //======================================== items 처리
 var tm = items.length<rowlimit?items.length:rowlimit;
 for(var ti=0;ti<tm;ti++){
  item_obj = items[ti];
  field0 = fieldset_ori.cloneNode(true);
  legend0 = legend_ori.cloneNode(true);
  div0 = div_ori.cloneNode(true);
  div1 = div_ori.cloneNode(true);
  div1.style.textAlign='right';
  div2 = div_ori.cloneNode(true);
  a_title = a_ori.cloneNode(true);
  if(item_obj['title'].length>cutstr){
  item_obj['title']=item_obj['title'].substr(0,cutstr)+'...';
  }  
  a_title.innerHTML = item_obj['title'];
  a_title.href=item_obj['link'];
  span_creator = span_ori.cloneNode(true);
  span_creator.innerHTML = item_obj['dc:creator']
  span_date = span_ori.cloneNode(true);
  span_date.innerHTML = item_obj['dc:date']
  div1.appendChild(span_creator);
  div1.appendChild(span_date);
  item_obj['description']=item_obj['description'].replace(/\&lt;/gi,'<');
  item_obj['description']=item_obj['description'].replace(/\&gt;/gi,'>');
  item_obj['description']=item_obj['description'].replace(/\&amp;/gi,'&');
  item_obj['description']=item_obj['description'].replace(/\&quot;/gi,'\"');
  item_obj['description']=item_obj['description'].replace(/\&nbsp;/gi,' ');
//  item_obj['description']=item_obj['description'].replace(/<[^>]*?>/gi,'');  
  div2.innerHTML = item_obj['description'];
  field0.appendChild(legend0);
  field0.appendChild(div0);
  legend0.appendChild(a_title);
  div0.appendChild(div1);
  div0.appendChild(div2);
  root.appendChild(field0);
 }
  return root;
}
var js_rss_to_fieldset_process_type2 = function(res,cutstr,rowlimit){
 var rss_to_fieldset_target_paste;
// alert(this['rss_to_fieldset_target_paste'].id);
 var arr_channel_items = rss1_to_array(res);
 var channel = arr_channel_items[0]; 
 var items = arr_channel_items[1];
 var div_ori = document.createElement('div');
 div_ori.style.margin='2px';
 var span_ori = document.createElement('span');
 var a_ori = document.createElement('a');
 a_ori.style.color='#333333';
 //======================================== channel 처리 /최외각 처리
 var root=div_ori.cloneNode(true);
 root.style.fontSize='12px';
 /*var root_legend=div_ori.cloneNode(true);
 var root_legend_a=a_ori.cloneNode(true);
  if(channel['title'].length>cutstr){
  channel['title']=channel['title'].substr(0,cutstr)+'...';
  } 
 root_legend_a.innerHTML = channel['title'];
 root_legend_a.href = channel['link'];
  channel['description']=channel['description'].replace(/\&lt;/gi,'<');
  channel['description']=channel['description'].replace(/\&gt;/gi,'>');
  channel['description']=channel['description'].replace(/\&amp;/gi,'&');
  channel['description']=channel['description'].replace(/\&quot;/gi,'\"');
  channel['description']=channel['description'].replace(/\&nbsp;/gi,' ');
  channel['description']=channel['description'].replace(/<[^>]*?>/gi,'');
 root_legend_a.title = channel['description'];
 root_legend.appendChild(root_legend_a);
 root.appendChild(root_legend);*/
 //======================================== items 처리
 var field0,legend0_a,item_obj;
 var tm = items.length<rowlimit?items.length:rowlimit;
 for(var ti=0;ti<tm;ti++){
  item_obj =items[ti];
  field0=div_ori.cloneNode(true);
  legend0_a=a_ori.cloneNode(true);
  span_date=span_ori.cloneNode(true);
  span_date.style.cssText='float:right';
  if(item_obj['title'].length>cutstr)
  item_obj['title']=item_obj['title'].substr(0,cutstr)+'...';
  legend0_a.innerHTML = item_obj['title'];
  legend0_a.href = item_obj['link'];
  item_obj['description']=item_obj['description'].replace(/\&lt;/gi,'<');
  item_obj['description']=item_obj['description'].replace(/\&gt;/gi,'>');
  item_obj['description']=item_obj['description'].replace(/\&amp;/gi,'&');
  item_obj['description']=item_obj['description'].replace(/\&quot;/gi,'\"');
  item_obj['description']=item_obj['description'].replace(/\&nbsp;/gi,' ');
  item_obj['description']=item_obj['description'].replace(/<[^>]*?>/gi,'');
  legend0_a.title = item_obj['description'];
  legend0_a.style.whiteSpace='nowrap';
  span_date.innerHTML = item_obj['dc:date'].substr(0,10);
  field0.appendChild(span_date);  
  field0.appendChild(legend0_a);
  root.appendChild(field0);
 }
  return root;
}

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자