這個Blogger Hack我已經使用很久了,也是我個人非常喜愛的一個Hack,在我的Kubrick版型中,也有提供之功能!我覺得在回應文章時,同時顯示回應者的圖像是很酷的一件事,看圖片很快就可以辨認出是某某某,同時此iCon也具有特別的意義,像徵著你的Blog Spirit..等同於一個人的網路身份..口桀口桀 (XD..當我在亂講就好...是我個人特別癖好罷了),當初在找這個Hack的時候,覺得明明Blogger就可以自行提供個人Profile Image的link,很簡單就可以辦到了,沒什麼技術上的問題,但為啥不提供...後來在Google Groupgs有看到,聽說官方的回應是,會有關於安全性方面的問題,所以不提供...至於問題是如何,當然就沒提到囉...※Demo1: example
※Demo2: 以這篇回應較多的文章來看看吧...
因為之前較沒空,所以一直懶得翻譯...並且有不少網友來信問說是如何弄的,所以就直接來篇翻翻教學吧,請往下看吧...參考資料來源:Step1.首先開啟你的Template(記得要是完整的,也就是到"Edit Html"頁面勾選"Expand Widget Templates"),找到底下的code
New Comment Photo Hack (Blogger) (新方法,較簡易,底下講解此方法..)
comment photos and highlighting hack (這篇是舊方法)<dl id='comments-block'>在這段code底下插入下面的code
<b:loop values='data:post.comments' var='comment'><div style="clear:both">
<dt style="float:left;margin-right:5px;clear:both;" expr:id='"commentphoto" + data:comment.id'></dt>
<!--底下這段,針對IE修正了些小bug-->
<b:if cond='data:comment.authorUrl'>
<script type="text/javascript"> if(typeof(commentPhotoIds) == 'undefined') var commentPhotoIds = []; commentPhotoIds.push({'id':'commentphoto<data:comment.id/>', 'url':'<data:comment.authorUrl/>'});</script>
<b:else/>
<script type="text/javascript"> if(typeof(commentPhotoIds) == 'undefined') var commentPhotoIds = []; commentPhotoIds.push({'id':'commentphoto<data:comment.id/>', 'url':''});</script>
</b:if>
Step2.接著往下滾,你會找到一個相對應的</b:loop>,在</b:loop>之前新增底下的code</div>
Step3.在tempalte中,找到</body>,接著將底下這段code貼在</body>上面,底下有maxwidth(限制最大圖像寬度)和defaultimage(若在Profile中沒有圖片時,所使用的預設圖片)參數供你自行調整<script type='text/javascript'>
//<![CDATA[
function commentPhotoDo() {
var tag;
for(var i = 0; i < commentPhotoIds.length; i++) {
//上面那行,相較於原文,也作了些小修正了,解決一些怪異的行為
tag = document.createElement('script');
tag.type = 'text/javascript';
tag.src = 'http://scrape.singpolyma.net/avatar.php?maxwidth=70&url='+encodeURIComponent(commentPhotoIds[i].url)+'&id='+encodeURIComponent(commentPhotoIds[i].id)+'&defaultimage='+encodeURIComponent('http://img139.imageshack.us/img139/1011/defaultavatarad7.png');
document.body.appendChild(tag);
}//end for var i in commentPhotoIds
}//end function commentPhotoDo
if(typeof(commentPhotoIds) != "undefined") commentPhotoDo(); //在首頁不執行此script
//]]>
</script>
Step4.接著就是存檔,就ok啦...快去看看你的成果吧..
Tags Cloud
My Secret Notebook (我的火星文記事本)
mm0NiDU82M4jV6t2RBCBrz25cuC9sjNwAuamtlEmcM1VguTu
hVs5vX7xayeXoDLwLRIsXDdxVSYNoZecdMY16+hwqpbgm2ch
78a90t0Gr9zL74TcZYwjdl3BbmnCRBJjD88dRHxdcPqIiDGp
zWe9q/XdSxe6yXKdh/hwQJ+D+o6XPWboby+RmoOtn9wmdQnN
o8h7BKWLQQMO+5XEV0RDZmUO3X7ADN8bzC8JmhP1BVP2V80d
Fs3ohWPSt7UBKnHCwI5tyeakRQihDKCzfiP7F0J+spSxCSlR
PqAj0w88PWB2ax8Y2++K/XMFHF6VuSeRhSMCaExmTTLqngxc
WlEA551OvUriquyW8QQc6jVg8lQn4m4H78QgUPvc2F3LsYKm
fd9HLa+mXrnTgh4SfgyUmS84BZdoGpMbfM4OpuWgFVZcN2e/
uKhuJm7md4G0wyo7efCLPwWWWqxZG8yzwQAHDQr5p/3xZeX4
qjMXzpXiwCqLzTGbZPqx9XMDqtrardSQNAw3dJgxgWALNzyu
/OOiDZGnobvYgDXDRuMQHo1k7gvSR7J+SNIbw7cd4696ChIL
c97GW+hdMcpTOcK9dhIKK8tXDJxiM7OSA28KCN4Wn3N1iJ9y
w4Y6W4GqbSiRxrze5zwOGeG5SbvrYvJ4LSDgND6fszdE43uk
PoPKYyfg3r4JcwrcqDJXcv1jWDuLi1swUK8lXhLLA7Ahfl8a
r+3IJJ4bnUASn9UiEMRZsOKJvK83A/TVZTS5QTz9etA60x7T
67VlH432PnH/ktoaE1XmqhbFgZ7v9UD7ujgxFMYvJ7Y9dNcI
bd3iUVa9EmudYLEuw4Otze1lLL3NQgUb+NNjgKx7r6bUHdmZ
WW7V9g==
My Flickr
| [+/-] |
[Blogger Hack] Comment Photo Hack (在Comment處顯示回應者圖片) |
| [+/-] |
[Javascript] Encrypt your private blog post |
研究所時有碰過一些跟Cryptography(密碼學)有關的東西,但只懂一點理論上的皮毛而已,沒有動作實作過,如今玩Blogger的同時,剛好有個有人心士將他所學應用在他的需求上,真是與實務面作了結合,太棒了老兄…我要向他看齊..XD。
原作者實現此Hack的用意就是: 他想要將他一些私人的、不方便公開的東西,亦或某些只想供親朋好友看的內容,記錄在公開的Blog上頭,又不失隱密性,且方便日後查詢,於是針對這些私密訊息的簡易加解密功能就如此誕生啦! (所利用的演算法是 256-bit AES,目前來說「安全性」算相當高了)
※適用範圍: 所有支援Javascript的Blog,若不幸你的Blog不支援的話,快跳槽來「Blogger」吧,保証可以隨便你惡搞的Blog平台,不會後悔的
資料來源:
Vincent Cheung -> Encrypted blog posts 快往下瞧瞧這強大的Hack吧... :D
:: Demo (展現出來的效果如下,兩種方式) ::
Key(密鑰): ie-sucks
- Demo1:
Click to Decrypt text (點擊此處解開火星文,裡頭有清涼的唷)Z0J1c4HlZqELhLfFoUOd5hH9Wu6ntYW26B4XXM24lKlRT05Z+lEDEsPVjtvqISIXoAtLKJwuksdqBpY3higDTLhYarZUgXVyyH1WY5N7hzPrP2xx0gJisgbHx2IdtoXww4Ure0hui2IcRuX26FSlxTnbIKQlLH22p7cIvQXgYak6KiV6MKaBKeiIBSKSYi5Kz8t6MSM4kIGnmzBmibsNMaPCjzb4KGmVA7xegfkyQNfPzK51Yl6SgeoENK8MUGTnbz0L1l5YT9vBYd5LxJdbf8/hwmhvY2Lzkq+iLeP9ClKIuirkwt2J3qhveuQR/tqylONAVxNccbT7e8n6j4pw85F8+4GAPDf60lbo9DuusRA= - Demo2:
Show encrypted text (點擊此處變身為火星人)
上方展現出來的效果是不是很炫呀 ^_^,超吸引人的吧,快來安裝一下吧,底下開始中文化原文..囧rz,方法如下:
首先在你的Blog中嵌入此Hack所需的Javascript,在Blogger的使用方法就是將底下的code加在Template中的</head>上面即可(其它Blog方法就是加在header裡頭就對了)
<script language='JavaScript' src='http://vincentcheung.googlepages.com/blogjscrypt.js'></script>完成上面動作之後,基本上就完成了,若要在新文章中新增「火星文時」的話,請透過底下兩個步驟:
- 產生加密過後的火星文:
透過此網站,輸入「Key」欄位以及「Plain Text」欄位,接著按Encrypt Button(加密鈕,在Plain Text欄的下方),此時便會在「Cipher Text」欄位產生加密過後的火星文字啦(底下會用到..)!!
※千萬要記得上方你自行定義的Key,之後解密時要用的,若忘記了,恐怕沒有量子電腦(Quantum Computer)這般等級的高速電腦是解不出來的。 - 嵌入火星文片段至新文章中:
共有底下兩種顯示方式,依個人喜好選擇擇一
.方法一(如上頭Demo1,直接在文章中顯示火星文):<a href="javascript:Decrypt_text('unique_name');">Click to Decrypt text (點擊此處解開火星文)</a>
<div id="unique_name">此段內容為由上面Step1.所產生出來的一整段火星文(例如:wRxSwskrWsmohc1...之類的文字)</div>
.方法二(如上頭Demo2,隱藏火星文,只顯示連結):<a href="javascript:Decrypt_text('unique_name', '此段內容為由上面Step1.所產生出來的一整段火星文(例如:wRxSwskrWsmohc1...之類的文字)');">Show encrypted text</a>
<div id="unique_name"></div>
※注意上方的unique_name型態是div tag的一個id名子,可以自行命名,只要在template中,或文章中不出現同樣的id即可,否則會造成判斷錯誤!!也就是在一個顯示頁面中,有用到兩個以上火星文片段的話,那麼此id的命名就必須是unique_name,unique_name1,unique_name2...之類的。
最後,作者很風趣的列舉了幾個常見問題(Faq),很北爛的一個家伙...有興趣去看看...
| [+/-] |
[AJAX] AJAX Labels Cloud |
今天在 Blogger Hacked 發現一個超棒的東西叫作AJAX Labels,也就是之前 [Blog] Peek-A-Boo view of posts in label pages 的改良版,利用 AJAX/JSON 的技術,大幅提升Blog的更新速度,效果就像此圖中所表現的(建議還是試著點圖中的"AJAX Tas Cloud"才能親身體驗「真的快、好厲害」),感謝作者Deepak分享(very Awesome!)資料來源:接下來開始翻譯(...XD)安裝步驟:
Blogger Hacked: AJAX Labels
Step1:若要此hack能夠正常運作的話,你必需在你的Blog裡使用"Prototype Javascript Library",你可以到官網自行抓一份,放到你的空間中 或者懶得話拿我的去用也無妨..^^(畢竟是Google提供的空費空間),所以到必需在你的Template中新增底下code (放置於<head>...</head>裡頭)<script src='http://chenkaie.googlepages.com/prototype.js' type='text/javascript'> </script>
<script src='http://chenkaie.googlepages.com/scriptaculous.js?load=effects' type='text/javascript'/>
Step2:接著新增核心部份程式碼,將底下連結中的程式碼仿Step1.同樣加到<head>...</head>裡頭,裡頭CSS請依照您個人喜好修改,細項說明,請參考原著解說!CSS Code & Javascript code:
http://bloggerhacked.googlepages.com/ajaxlabelsscript
Step3:在你的Template中找到底下片段,有一樣的全都要修改(若不改的話,就是原本Blogger提供的效果)
將上面紅色部份,取代成底下:<a expr:href='data:label.url' rel='tag'><data:label.name/></a><a expr:href='"javascript:getCat(\"" + data:label.name + "\")"' rel='tag'>
Step4:若你原先有裝Labels Cloud的話(沒有請跳到Step5.)資料來源:若要將點擊Labesl Cloud所呈現出的效果也修改成AJAX Labels的樣式的話,請將底下:
phydeaux3: Blogger Beta Label Cloud Update
phydeaux3: Code for Beta Blogger Label Cloud<a expr:href='data:label.url'><data:label.name/></a>修改成底下的樣子<a expr:href='"javascript:getCat(\"" + data:label.name + "\")"' rel='tag'><data:label.name/></a>
Step5:新增一個"HTML/Javascript" Page Element放置於"Blog Posts" Element的上面(可隨個人喜好修改),裡頭的code如下(和原作不一樣,原作的似乎有些小Bug,我作了一點修改,若你作完不行的話,請參考原著):<div id="indicator" style="display: none;">
<img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif" /> Loading...
</div>
<div id="search-result" style="display: none;"></div>
Step6. 存檔離開就好囉....^^ 快去試試看呈現出來的驚人效果吧!!
※此AJAX Labels Cloud是抓取Blogger提供的feed中summary類別(比較精簡,為了追求更佳的速度感^^),作為文章預覽,所以呈現出來只有一小段!
※還有預設,點選每一個Label只有呈現5篇文章,若要增加的話,請將Step2裡頭程式碼"?max-results=5"中的5改為您想要的數字即可!
[Update 2007-03-14]
原作者,發表了新版本的AJAX Labels了,請參照此處
| [+/-] |
[Javascript] Selectable Post Font Size for your best view! |
之前有看到許多網站或討論區,有可以自行選擇顯示字型大小的功能,對於視力好的人來說或許字型小了些沒什麼影響,但有些老人家..(是我嗎..XD),有時就會覺得看得有些吃力,若能迅速的讓字型放大,不用再花時間ReLoad頁面的話,將會是個很不賴的工具!!
※當然藉由按 Ctrl++/ Ctrl+- (for Firefox),或者是Browser提供的放大縮小功能,不然就是通用的「Ctrl+滾輪上下滾」來達到放大縮小的功能,但我這個人比較龜毛,因為這兩種功能所表現出來的文字常常是破碎或是很醜,個人無法接受...時常因為這樣不逛那個站了…囧rz,並且透過上述的方式縮放頁面字型時,是所有版面的字型都會放大,也就連帶影響到Sibebar、Header...及其它非本文章內容的部份,整個網站當初設計好的版型都變了樣,喪失美感! 因此,我在此Blog中提供三種用於縮放文章內容的合適字型讓大家選擇(位於此處)!!
至於在Yahoo Taiwan的新聞裡點進每一篇新聞之後,也有提供類似這樣子的工具,But...他每次點換字級大小之後,都必需要 Reload 部份的頁面,明明可以不用Reload的,為啥他這麼作…後來發現,廣告部份也隨著Reload換新的了...囧rz,想必這是最主要的原因吧,那是他們吃飯的工具,就給他reload一下吧...XD!!參考資料來源:我根據上面所提供的的簡易版本,再修改成較適合於New Blogger版本 ^_^(當然再作適當的修改之後,其它Blog也都是可以套用的)。
懒人图库 LAYABOUT'S GALLERY
在修改的過程中,又遇到某個語法getElementsByName在IE中的話只對表單的物件有作用...OMG..IE sux again!!還好有底下這位大哥的教學,解救了我...感恩!!參考資料來源:於是,最後完整版的Javascript code (IE & Firefox 都正常) 就變成底下:
IE vs. FireFox 系列 - getElementsByName問題
[Updated 2006-12-26] 針對留言中Benjamin網友所遇到的問題,在這裡提醒大家,貼底下code時應注意的事項:由於Blogger在parse template語法有無錯誤時,他會檢查是否存在相對應的左括: <及右括: >,若不存在便會跟你說你的template語法沒有正確的close,導致儲存失敗。不幸的是,你若將Javascript嵌入template檔中,並且又很巧的,用到compare operator,例如:「小於:<」,如此一來他便會產生上述所提的,少了相對應的右括: >,而導語法錯誤啦! 因此,大家若要將底下這段javascript嵌入template中的話,記得將裡頭的<置換成<
之後,因為我只讓本文內容(Post.body)的字型大小可供縮放,因此編緝template內容,將裡頭找到的所有<script type='text/javascript'>
function getElementsByName_iefix(tag, name) {
var elem = document.getElementsByTagName(tag);
var arr = new Array();
for(i = 0,iarr = 0; i < elem.length; i++) {
att = elem[i].getAttribute("name");
if(att == name) {
arr[iarr] = elem[i];
iarr++;
}
}
return arr;
}
function doZoom(size)
{
var zooms = getElementsByName_iefix("span", "zoom")
for (var i = 0; i < zooms.length; i++) {
zooms[i].style.fontSize = size+'px';
}
}
</script>
都置換成底下的樣子<p><data:post.body/></p>
如此,就可以將被 name='zoom' 的span tag包住的那些內容,賦予字型縮放的功能!!<span name='zoom'><p><data:post.body/></p></span>
最後在將你要提供此項功能的界面,填入此段程式碼即可,裡頭的數字以px為單位:<a href="javascript:doZoom(16)">大</a>※展示出來的功能,請參照此圖,並加以操作看看…
<a href="javascript:doZoom(14)">中</a>
<a href="javascript:doZoom(12)">小</a>
| [+/-] |
[Template] Kubrick style for Blogger beta |
由於個人很喜歡Kubrick這個源自於WordPress裡預設的"簡單中又不失美感"的一個版型 ^_^,於是將他移植到Blogger Beta的平台上 ^_^,並且加上了一些個人自認為還還不錯的功能...,只不過對於IE的親和力可能要說聲抱歉了...XD,IE實在很討人厭..囧rz,可能有一些些小bug就是了,但不會有什麼太大的影響!!
.底下為預覽圖:
(※注意事項:請把原先的作好備份,以備不時之需!!套用時,要先把沒用的widget清空,再小心將你原本的widget搬到此新 template,不然到時不見了,你會愈哭無淚的!)
.額外附加功能:
若你想換成自己的Banner的話,底下有一個簡單又快速的方法...really Awesome!!Website: http://redalt.com/Tools/Kubrickr
此Kubrickr就是利用強大的 Flickr 所提供的超大圖庫,然後由裡頭的圖片產生你所想要的Banner,實在是個非常棒的應用!! 真是造福了不少人群..
所以說,你若看煩了Kubrick預設的Banner,或想要多點變化,你可以隨時輕鬆的從Kubrickr產生你所喜歡的 ^_^
若有問題,歡迎隨時留言討論...
[Updated 2006/12/13]
修正背景色的色差,與原始的Kubrick不太一樣,導致用Kubrickr所產生出來的Banner和舊版本的不一樣!! < 感謝 Orion 提供 >
[Updated 2007/07/14] 由於原作者hosting的javascript file(hackosphere.js)空間,已經無法承受愈來愈多人的存取,請繼續看底下code框框中的更新作法將原本這一行程式碼<script type='text/javascript' src='http://www.anniyalogam.com/widgets/hackosphere.js' />
拿掉,置換成底下這一段程式碼
<script type="text/javascript">
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != 'none') {
post.style.display = 'none';
} else {
post.style.display = '';
}
}
function showFullPost(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost")
spans[i].style.display = 'inline';
if (spans[i].id == "readmore")
spans[i].style.display = 'none';
}
}
var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}
function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}
function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}
</script>
| [+/-] |
[Blog] Peek-A-Boo view of posts in label/archive pages |
很棒的 Blogger Hack,不僅具有和 [Blog] only show "Post Title" at Lable and Archive Page 這篇同樣的功能,更可以支援直接擴展(Expandable),可以加速網頁的開啟的速度... Very Cool !!
例如:[Blog]所展現出來的行為。
實作方法如下:
Step1:將底下這行加到你的template的<head>裡頭(也就是在</head>之前就對了)。
[Updated 2007/07/14] 由於原作者hosting這個javascript file的空間,已經無法承受,請繼續看底下code框框中的更新作法將原本這一行程式碼<script type='text/javascript' src='http://www.anniyalogam.com/widgets/hackosphere.js' />
拿掉,置換成底下這一段程式碼
<script type="text/javascript">
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != 'none') {
post.style.display = 'none';
} else {
post.style.display = '';
}
}
function showFullPost(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost")
spans[i].style.display = 'inline';
if (spans[i].id == "readmore")
spans[i].style.display = 'none';
}
}
var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}
function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}
function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}
</script>
Step2:修改成如下,新增紅色字所顯示的部份 (記得把 Expand Widget Templates 選項打勾,才可以看到完整的code)
※若要改變樣式,請自行更改上頭程式碼裡頭的"[+/-]"這個符號...<b:includable id='PeekABooPost' var='post'>
<div class='post uncustomized-post-template'>
<table><tr>
<td width='40px'>
<a href='javascript:void(0)' title='Expand/collapse this post' style='text-decoration:none' expr:onclick='"javascript:toggleIt(\"" + data:post.id + "\");"'>[+/-]</a>
</td>
<td>
<h3 class='post-title'><a expr:href='data:post.url'><data:post.title/></a></h3>
</td>
</tr></table>
<div class='post-body' expr:id='data:post.id' style='display:none'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
</div>
</b:includable>
<b:includable id='main' var='top'>
<!-- posts -->
<div id='blog-posts'>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<b:include data='post' name='PeekABooPost'/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:if cond='data:blog.pageType == "item"'>
<b:if cond='data:post.allowComments'>
<b:include data='post' name='comments'/>
</b:if>
</b:if>
</b:loop>
</div>
Step3: 沒有了,就這樣子而已...快去測試看看你的Label和Archive頁面吧...^^.參考文獻:Hackosphere -> Peek-A-Boo view of posts in label/archive pages
| [+/-] |
[Blog] Expandable posts with Peekaboo view (blogger beta) |
這個功能,個人覺得比起之前的「"...Read More"篇」的更為實用,因為不需要重新載入新的頁面,直接就打開來...反應速度更快,閱讀完畢時,又可馬上縮起來,不占版面空間,相當的方便 ^_^
.實作方法如下:
Step1:將底下這行加到你的template的<head>裡頭(也就是在</head>之前就對了)。
[Updated 2007/07/14] 由於原作者hosting這個javascript file的空間,已經無法承受,請繼續看底下code框框中的更新作法將原本這一行程式碼<script type='text/javascript' src='http://www.anniyalogam.com/widgets/hackosphere.js' />
拿掉,置換成底下這一段程式碼,若你沒有加過以上那一行的,就略過,直接加以下這段code...
<script type="text/javascript">
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != 'none') {
post.style.display = 'none';
} else {
post.style.display = '';
}
}
function showFullPost(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost")
spans[i].style.display = 'inline';
if (spans[i].id == "readmore")
spans[i].style.display = 'none';
}
}
var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}
function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}
function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}
</script>
Step2:找到底下這段,加入紅色的部份<b:includable id='post' var='post'>
<div class='post' expr:id='"post-" + data:post.id'>
<a expr:name='data:post.id'/>
Step3:找到底下這段,同樣加入紅色的部份<div class='post-header-line-1'/>
<div class='post-body'>
<b:if cond='data:blog.pageType == "item"'>
<p><data:post.body/></p>
<b:else/>
<style>#fullpost {display:none;}</style>
<p><data:post.body/></p>
<span id='showlink'>
<p><a href='javascript:void(0);'
expr:onclick='"javascript:showFull(\"post-" +
data:post.id + "\");"'>[+/-] Read More...</a></p>
</span>
<span id='hidelink' style='display:none'>
<p><a href='javascript:void(0);'
expr:onclick='"javascript:hideFull(\"post-" +
data:post.id + "\");"'>[+/-] Summary only...</a></p>
</span>
<script type='text/javascript'>
checkFull("post-" + "<data:post.id/>");
</script>
</b:if>
<div style='clear: both;'/> <!-- clear for photos floats --></div>
※若要更改"顯示文字",請自行更改上頭程式碼裡頭的"[+/-] Read More..."和"[+/-] Summary only..." 這兩個文字標籤...
Step4:基本上這樣就完成了! 最後,先登入Blogger,再到「Settings->Formatting」,將<span id="fullpost"> 想要隱藏的部分 </span>填入Formatting的框框裡即可,如此一來,每次編輯新文章時,即會自動填入所需的程式碼囉 ^_^ oh ya!!
※注意是span,並非如同之前這篇「"...Read More"篇」所提到的,是用div...請小心!!※參考文獻:
.Hackosphere -> Expandable posts with Peekaboo view
.How can I make show/hide links for my posts?





