前言
在別人的部落裡看過在每篇文章的最後會秀出隨機讀的幾個連結,自己也來實作一個。

程式碼
<script type="text/javascript">
第一部份
myArticle=new Array();
myArticle[1]="http://blog.pixnet.net/jck11/post/4643580 抓取pixnet裡的文章連結";
myArticle[2]="http://blog.pixnet.net/jck11/post/4654651 自動投票程式";
myArticle[3]="http://blog.pixnet.net/jck11/post/4691554 自動販賣機爆走";
myArticle[4]="http://blog.pixnet.net/jck11/post/4691745 兩罐『立攝適』";
myArticle[5]="http://blog.pixnet.net/jck11/post/4718164 自製相簿備份程式";
myArticle[6]="http://blog.pixnet.net/jck11/post/4742968 教育徹底的失敗?";
myArticle[7]="http://blog.pixnet.net/jck11/post/4743008 專家教您夏天開車如何省油急凍有撇步";
myArticle[8]="http://blog.pixnet.net/jck11/post/4743100 5/18 全國58座博物館 免費入場";
myArticle[9]="http://blog.pixnet.net/jck11/post/4743142 放棄一點點";
myArticle[10]="http://blog.pixnet.net/jck11/post/4743533 不同時代的醫生";
myArticle[11]="http://blog.pixnet.net/jck11/post/4743566 比國父強兩倍";
myArticle[12]="http://blog.pixnet.net/jck11/post/4746310 短短1個月就成功讓蚊子減少";
myArticle[13]="http://blog.pixnet.net/jck11/post/4759558 「誠信」漂流記";

第二部份
function genRandArticle(){
  var numb=myArticle.length-1;
  var mathRandom=Math.random();
  var mathRound=Math.round(mathRandom*numb);
  var aUrl=myArticle[mathRound].substr(0, 41);
  var aArticle=myArticle[mathRound].substr(42, myArticle[mathRound].length - 41); 
  var str='<span style="color: red; font-weight: bold;"> >></span><a href="' + aUrl + '" style="margin-left: 10px; text-decoration: none;">' + aArticle + '</a><br />';
  return str;
}

var divRandArticle='<div style="margin-top: 20px; margin-right: 10px; background-color: #E2FFBF">';
divRandArticle+='<span style="font-weight: bold; margin-left: 10px;">[ 隨 機 閱 讀 ]<br /></span>';
for(i=0; i<6; i++){
  divRandArticle+= genRandArticle();
}
divRandArticle+='</div>';

第三部份
var isArticle = false;
if (document.URL.indexOf("post") > 0) isArticle = true;
if (isArticle){
if(window.attachEvent)
window.attachEvent('onload', init);
else
window.addEventListener('load', init, false);
}

第四部份
function init(){
var haveExtended;
var DIVs = document.getElementsByTagName('div');
for(var i in DIVs){
var x=new String(DIVs[i].className);
if(x.indexOf("extended") == 0){
DIVs[i].innerHTML = DIVs[i].innerHTML + divRandArticle;
haveExtended=true;
break;
}
}
if(! haveExtended){
  for(var i in DIVs){
  var x = new String(DIVs[i].className);
  if(x.indexOf("main") == 0){
  DIVs[i].innerHTML += divRandArticle;
  break;
}
}
}
}
</script>

解說
上面的程式直接複製就可以用了,當然你必須改一下連結的部份,總不能連那個也複製吧,如果是這樣,我會很感謝您,哈。
程式碼的第一個部份是設定連結,你可以設定你全部的文章,我就是這麼做的,也許你會想說一個一個打要打到什麼時候呢?那你真是個懶惰的人,我也是,或許你可參考「抓取pixnet裡的文章連結」,只要稍微改一下,你就可以很快的得到上面那樣格式的連結。
程式碼的第二部份是一個genRandArticle函式,目的是產生一個隨機的連結。再來就是把那些連結給結合成一個div。
程式碼的第三部份是我從別人的部落格看來的,我在「終於搞定了Google的Adsense」裡有提到,主要目的是讓文章被開啟時,動態的呼叫init函式。
程式碼的第四部份就是init函式的主體,當然就是把程式碼第二部份裡所產生的div字串給包進來。
最後,你必須把上面那段程式碼給放到「網誌管理」「網誌描述」裡,嗯,就這樣。

示範
當你點進來看這篇文章時,你仔細看一下文章的下方,沒錯,就是那樣,你看到示範了 :)
有一個小問題是随機連結裡沒有去判斷是否重複,不過,我覺得這沒什麼影響啦。

回饋
其實我對JavaScript並不是很熟,寫這個程式也是以很直覺的方法,也許其中有些錯誤,如有需改進的地方或錯誤的地方,歡迎留言告知,謝謝啦。
arrow
arrow
    全站熱搜

    jck11 發表在 痞客邦 留言(14) 人氣()