[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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1