2012-07-23 3 views
0

Google 피드에 대해 질문이 있습니다. 그것은 내가 자바 스크립트를 사용하여 RSS를 표시하는 데 도움이됩니다. 먼저 코드를 보여주고 싶습니다. 그러면 제 질문을 할 것입니다.자바 스크립트에서 RSS 피드 사용

JS 부 :

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script language="javascript"> 

var sglm=new Array(); 
sglm[0]= 'ahmet tanakol'; 

google.load("feeds", "1"); 

function initialize() { 
    var feed = new google.feeds.Feed("http://www.ntvmsnbc.com/id/24927681/device/rss/rss.xml"); 
    feed.setNumEntries(6); 

    feed.load(function(result) { 
    if (!result.error) { 
     var container = document.getElementById("feed"); 
     for (var i = 0; i < result.feed.entries.length; i++) { 

     var entry = result.feed.entries[i]; 
     var div = document.createElement("div"); 
     div.appendChild(document.createTextNode(entry.title)); 
     container.appendChild(div); 
     } 
    } 
    }); 
} 
google.setOnLoadCallback(initialize); 

바디 :

<body onload="startbcscroll();" bgcolor="#ffffcc" text="navy"><center> 
<div id="feed"></div> 

좋아, 나는이 구글이 수평 스크롤에 메시지를 표시하는 코드와 다른 JS 피드 사용하고 있습니다. 둘 다 지금 작동하지만이 가로 스크롤에서 RSS 피드를 표시하려고합니다. 코드를 실행하면 먼저 Rss 피드 제목이 표시되고 하단에는 가로 스크롤이 표시됩니다. 이 수평 스크롤에서는 "sglm"이라는 배열에서 값을 가져옵니다. 당신은 JS 부분에서 그것을 볼 수 있습니다. 예를 들어 정확하게 작동하지 않는 다른 형식이어야합니다.

sglm [0] = '안녕하세요'

지금은 RSS이 형식이 배열로 피드에서 제목을 넣어합니다. 알아낼 수 없으니 어쩌면 당신이 나를 도울 수 있습니다. 그건 그렇고, 그것은 id 피드와 div에 피드 피드 제목을 넣습니다. 고맙습니다.

+0

임 없습니다 나는 당신의 질문을 얻을 수 있지만 그때 할 경우 모두 당신이해야 완전히 확인 do, after'div.appendChild (document.createTextNode (entry.title));'add'sglm.push (entry.title);' – PAEz

+0

당신이 나에게 말한 것을 시도했지만 작동하지 않았습니다. 그것을 표시하기 위해 나는 수평 스크롤 메뉴를 사용하고있다. 그것은 정확히이 형식으로 요소를 할당해야한다고 말한다. sglm [0] = 'Hello world'. sglm.push (entry.title)를 작성할 때 내 항목 제목 대신 undefined가 표시됩니다. –

+0

나는 또한 이것을 시도했다. sglm [0] = ''+ entry.title, 아직 정의되지 않았다. –

답변

1

음 재미 있었어 .... 안돼! ;)
시력 검사기를 조금 바꿔야하는 방식을 변경해야했습니다. 그 방법을 업데이트하는 방법을 파악할 수 없었습니다. 이제 일련의 항목을 전달하기 만하면 쉽게 업데이트되는 tickerUpdateItems 함수가 업데이트됩니다.
다음은 .... ....

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>JS-Ticker</title> 
<style> <!-- 
BODY, P, SPAN, DIV, TABLE, TD, TH, UL, OL, LI { 
    font-family: Arial, Helvetica; 
    font-size: 14px; 
    color: black; 
} 
.code { 
    font-family: Courier New, Monospace; 
    font-size: 12px; 
    margin: 10px; 
    padding: 0px; 
    color: blue; 
} 
--> </style> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 



//THIS IS MY HORIZONTAL SCROLLING. RSS TO JAVASCRIPT CODE IS AT THE END OF IT!!!!! 

var tickerEntries = new Array(
    "Hello!", 
    "Use this script to create a news ticker.", 
    "You can also use <b>HTML tags</b>.", 
    "The quick brown fox jumps over the lazy dog." 
); 

//--------------------------------------------------------------------------------------------------------- 
// Configuration 
//--------------------------------------------------------------------------------------------------------- 

var tickerWidth = 400;        // width (pixels) 
var tickerMargin = 20;        // margin (pixels) 
var tickerDelay = 30;        // scrolling delay (smaller = faster) 
var tickerSpacer = "+++";       // spacer between ticker entries 

var tickerBGColor = "#E0F0FF";      // background color 
var tickerHLColor = "#FFF0E0";      // hilight (mouse over) color 

var tickerFont = "Courier New, Courier, Monospace"; // font family (CSS-spec) 
var tickerFontSize = 16;       // font size (pixels) 
var tickerFontColor = "blue";      // font color 

var tickerBorderWidth = 2;       // border width (pixels) 
var tickerBorderStyle = "groove";     // border style (CSS-spec) 
var tickerBorderColor = "#FFFFFF";     // border color 

//--------------------------------------------------------------------------------------------------------- 
// Functions 
//--------------------------------------------------------------------------------------------------------- 

var DOM = document.getElementById; 
var IE4 = document.all; 

var tickerIV, tickerID; 
var tickerItems = new Array(); 
var tickerHeight = tickerFontSize + 8; 

function tickerGetObj(id) { 
    if(DOM) return document.getElementById(id); 
    else if(IE4) return document.all[id]; 
    else return false; 
} 

function tickerObject(id) { 
    this.elem = tickerGetObj(id); 
    this.width = this.elem.offsetWidth; 
    this.x = tickerWidth; 
    this.css = this.elem.style; 
    this.css.width = this.width + 'px'; 
    this.css.left = this.x + 'px'; 
    this.move = false; 
    return this; 
} 

function tickerNext() { 
    if(!DOM && !IE4) return; 
    var obj = tickerItems[tickerID]; 
    if(obj) { 
     obj.x = tickerWidth; 
     obj.css.left = tickerWidth + 'px'; 
     obj.move = true; 
    } 
} 

function tickerMove() { 
    if(!DOM && !IE4) return; 
    for(var i = 0; i < tickerItems.length; i++) { 
     if(tickerItems[i].move) { 
      if(tickerItems[i].x > -tickerItems[i].width) { 
       tickerItems[i].x -= 2; 
       tickerItems[i].css.left = tickerItems[i].x + 'px'; 
      } 
      else tickerItems[i].move = false; 
     } 
    } 
    if(tickerItems.length == 1) { 
     if(tickerItems[tickerID].x + tickerItems[tickerID].width <= 0) { 
      tickerNext(); 
     } 
    } 
    else if(tickerItems[tickerID].x + tickerItems[tickerID].width <= tickerWidth) { 
     tickerID++; 
     if(tickerID >= tickerItems.length) tickerID = 0; 
     tickerNext(); 
    } 
} 

function tickerStart(init) { 
    if(!DOM && !IE4) return; 
    if(tickerBGColor) { 
     var obj = tickerGetObj('divTicker'); 
     obj.style.backgroundColor = tickerBGColor; 
    } 
    if(init) { 
     tickerID = 0; 
     tickerNext(); 
    } 
    if (tickerIV) clearInterval(tickerIV); 
    tickerIV = setInterval('tickerMove()', tickerDelay); 
} 

function tickerStop() { 
    if(!DOM && !IE4) return; 
    clearInterval(tickerIV); 
    if(tickerHLColor) { 
     var obj = tickerGetObj('divTicker'); 
     obj.style.backgroundColor = tickerHLColor; 
    } 
} 

function tickerInit() { 
    if(!DOM && !IE4) return; 

    var obj = tickerGetObj('divTicker'); 
    obj.style.width = tickerWidth + 'px'; 
    obj.style.visibility = 'visible'; 
    //tickerStart(true); 
    tickerUpdateItems(tickerEntries); 
} 

function tickerReload() { 
    if(!DOM && !IE4) return; 
    document.location.reload(); 
} 

//window.onresize = tickerReload; 
window.onload = tickerInit; 

//--------------------------------------------------------------------------------------------------------- 
// Build ticker 
//--------------------------------------------------------------------------------------------------------- 

document.write(
    '<style> ' + 
    '#divTicker { ' + 
    'position: absolute; ' + 
    'width: 10000px; ' + 
    'height: ' + tickerHeight + 'px; ' + 
    'cursor: default; ' + 
    'overflow: hidden; ' + 
    'visibility: hidden; ' + 
    (tickerBorderWidth ? 'border-width: ' + tickerBorderWidth + 'px; ' : '') + 
    (tickerBorderStyle ? 'border-style: ' + tickerBorderStyle + '; ' : '') + 
    (tickerBorderColor ? 'border-color: ' + tickerBorderColor + '; ' : '') + 
    '} ' + 
    '.cssTickerContainer { ' + 
    'position: relative; ' + 
    'height: ' + tickerHeight + 'px; ' + 
    'margin-top: ' + tickerMargin + 'px; ' + 
    'margin-bottom: ' + tickerMargin + 'px; ' + 
    '} ' + 
    '.cssTickerEntry { ' + 
    'position:absolute;top:2px; white-space:nowrap;'+ 
    'font-family: ' + tickerFont + '; ' + 
    'font-size: ' + tickerFontSize + 'px; ' + 
    'color: ' + tickerFontColor + '; ' + 
    '} ' + 
    '</style>' 
); 
function tickerUpdateItems(items) { 
    var ticker = document.getElementById('divTicker'); 
    ticker.innerHTML = ''; 
    if (items.length > 0) { 
     for (var i = 0; i < items.length; i++) { 
      var tickerItem = document.createElement('DIV'); 
      tickerItem.id = 'divTickerEntry' + (i + 1); 
      tickerItem.className = 'cssTickerEntry'; 
      tickerItem.innerHTML ='&nbsp;' + items[i] +'&nbsp;' +tickerSpacer; 
      ticker.appendChild(tickerItem); 
     } 
    } 
    tickerItems=[]; 
    for (var i = 0; i < items.length; i++) { 
     tickerItems[i] = new tickerObject('divTickerEntry' + (i + 1)); 
    } 
    tickerStart(true); 
} 
/*document.write(
    '<div class="cssTickerContainer">' + 
    '<div id="divTicker" onMouseOver="tickerStop()" onMouseOut="tickerStart()">' 
); 

for(var i = 0; i < tickerEntries.length; i++) { 
    document.write(
     '<div id="divTickerEntry' + (i+1) + '" class="cssTickerEntry" ' + 
     'style="position:absolute; top:2px; white-space:nowrap">' + 
     tickerEntries[i] + ((tickerEntries.length > 1) ? ' ' + tickerSpacer + '&nbsp;' : '') + 
     '</div>' 
    ); 
} 

//END OF HORIZONTAL SCROLLER 
//--------------------------------------------------------------------------------------------------------- 

// THIS IS WHERE I TRANSFORM RSS TO JAVASCRIPT!!!!!!!!!!!!!!!!!!!!!!! 
document.write('</div></div>');*/ 

    google.load("feeds", "1"); 

    function initialize() { 
     var feed = new google.feeds.Feed("http://www.ntvmsnbc.com/id/24927681/device/rss/rss.xml"); 
     feed.setNumEntries(6); 

     feed.load(function(result) { 
     if (!result.error) { 
      var titles=[]; 
      var container = document.getElementById("feed"); 
      var html = ''; 
      for (var i = 0; i < result.feed.entries.length; i++) { 
      var entry = result.feed.entries[i]; 
      titles.push(entry.title); 
      html += '<p>' + entry.publishedDate + '&nbsp' + entry.title; 
      } 
      container.innerHTML = html; 
      tickerUpdateItems(titles); 
     } 
     }); 
    } 
    google.setOnLoadCallback(initialize); 

// END OF RSS TO JAVASCRIPT 

</script> 
</head> 
<body> 
    <div class="cssTickerContainer"><div id="divTicker" onMouseOver="tickerStop()" onMouseOut="tickerStart()"></div></div> 
<div id="feed"></div> 
</body> 
</html> 

새로운 소스의 당신 :) 위해 밖으로 작동 희망

+0

정말 고마워요. 내 생각에 내 다른 게시물을 봤어. 나는 다른 해결책을 시도하고 있었으므로 나를 화나게하지 마라. 어쨌든 다시 한번 감사드립니다. –

+0

나는 그것을 시험해 보았다, 그것은 내가 원한 정확하게 작용한다. 다시 한 번 감사드립니다. –