2007年1月20日 星期六

在blogger加上最新文章

網路上可以找到蠻多種方法的,基本上我這個也是copy來的寫法

不過我作了一點小修改..

原本發現網路上找到的寫法幾乎都是全部的xml取回來,再由javascript取top幾篇來顯示

在參考了blogger API之後,了解其有提供參數可以直接指定取回的xml篇數

在文章數多的情形下,對網路的傳輸有明顯的差別

我的寫法如下:

language="JavaScript" />

function createXMLDom(){

if(window.ActiveXObject)

var xmldoc=new ActiveXObject("Microsoft.XMLDOM");

else if(document.implementation /> var xmldoc=document.implementation.createDocument("","doc",null);

xmldoc.async=true;

xmldoc.preserveWhiteSpace=true;

return xmldoc;

}

var createXMLHttp=function(){

var xmlHttp;

if(window.ActiveXObject)

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

else

xmlHttp=new XMLHttpRequest();

return xmlHttp;

}



/> id="newarticle" /> language="JavaScript" />var xmlFile="/feeds/posts/default?max-results=10";

var xmlDom=createXMLDom();

try{

xmlDom.load(xmlFile);

}catch(e){

var xmlHttp=createXMLHttp();

xmlHttp.onreadystatechange = function(){

if(xmlHttp.readyState == 4 ( xmlHttp.status == 200 || xmlHttp.status == 304 )){

xmlDom=xmlHttp.responseXML;

}else{

window.state="Loading XML";

}

}

xmlHttp.open("GET",xmlFile,false);

xmlHttp.send(null);

}



if(window.ActiveXObject)

xmlDom.onreadystatechange=function(){

if (xmlDom.readyState == 4) newarticle()

}

else

xmlDom.onload=newarticle;



function newarticle(){



var root = xmlDom.getElementsByTagName("feed")[0];

var title =root.getElementsByTagName("title")[0];

var blogName=title.firstChild.data;

var temp = ' id="Feed001_feedItemListDisplay" />var items=root.getElementsByTagName("entry");

for(i=0;i items.length; i++)

{

var item=items[i];

title=item.getElementsByTagName("title")[0];

link=item.getElementsByTagName("link")[0];

timestamp=item.getElementsByTagName("published")[0];

temp += ' class="item-title" href="'+link.getAttribute('href')+'" title.firstChild.nodeValue +' /> }

temp+=" /> document.getElementById("newarticle").innerHTML = temp;

}

/>


重點就是其中的藍色的部份,blogger api有提供max-results這個參數

可以決定取回多少篇,當然在blogger api中還有很多參數,有興趣的可以自己去看

將上面這段放在blogger的網頁元素中的HTML/javascript部份裡

就會看到最新文章的項目

0 回應:

 
TEMPLATE HACKS AND TWEAKS BY [ METAMUSE ] BLACKCAT 1.1