這個功能,個人覺得比起之前的「"...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?
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
| [+/-] |
[Blog] Expandable posts with Peekaboo view (blogger beta) |
| [+/-] |
[Blog] adding "...Read More" tag in Blogger beta |
.參考資料來源:轉錄文章來源: Blogger Beta 繼續閱讀功能改良
有關 Blogger in Beta-水瓶子
Hackosphere
一般在blogger上使用繼續閱讀功能的方式都是在想要隱藏的文章上放上tag,然後再利用css的display:none來隱藏該篇文章,由於display:none所隱藏的部份,不論是在IE或是Firefox下瀏覽,一樣都會把隱藏部份下載到cache,所以如果首頁的文章過長或是圖片過多,一樣會影響到首頁的瀏覽速度。
所以這篇利用Javascipt,把想要隱藏的文章直接remove掉,提高首頁的讀取效率,並且還具有Read More標籤適時才出現的功能。
首先進入編輯html,請記得把Expand Widget Templates打勾,然後在<head>間放入Javascript code<script type="text/Javascript">
function hidePost(postUrl)
{
var label=document.getElementById("fullpost");
if(label!=null){
eA = document.createElement("a");
eA.setAttribute("href",postUrl);
eA.setAttribute("title","Read More");
eA.appendChild(document.createTextNode("...Read More"));
eB = document.createElement("p");
eB.setAttribute("id","read-more");
eB.appendChild(eA);
label.parentNode.appendChild(eB);
label.parentNode.removeChild(label);}
}
</script>
接下來找到<p><data:post.body/></p>
用下面的code取代它<p><data:post.body/></p>
<b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.url'>
<script type='text/javascript'>hidePost('<data:post.url/>');</script>
</b:if>
</b:if>
最後,把想要隱藏文章部份的tag中,加入id="fullpost"就完成了,即<div id="fullpost"> //隱藏部分的文章 </div>
※註:Chagg says:「目前測試,在IE下確實有提升讀取效率,不過在Firefox下好像沒什麼用,照樣還是把隱藏部份下載到cache 囧rz,目前還在想有什麼方法可以對付Firefox」
.手動加id="fullpost"的動作如何自動化呢:很簡單,只要利用Blogger提供的功能,先登入之後,到「Settings->Formatting」,將
<div id="fullpost"> //隱藏部分的文章 </div>填入Formatting那邊即可,如此一來,每次編輯新文章時,即會自動填入所需的程式碼囉 ^_^ oh ya!!
| [+/-] |
[Blog] only show "Post Title" at Lable and Archive Page |
一個蠻不錯的 Blogger Hack,可以加速網頁的Loading的速度,不會顯示所有內容!!
- 參考資料來源:良人的大秘寶
<b:include data='post' name='post'/>置換成底下這段:
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<h3 class='post-title'><a expr:href='data:post.url'><data:post.title/></a></h3>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
| [+/-] |
[Blog] Overflow problems in IE (sidebar appears at bottom of blog) |
之前我的Blog中的side bar(也就是右邊那一整欄)在使用Internet Explorer瀏覽時(Firefox沒有問題),有時候會發生整個sidebar跑到頁面的最下方,但有時候又不會....XD,後來不爽了去問了一下Google大神才知道,原來是因為sidebar被blog中的content所擠壓,導致sidebar在主頁面的右邊(通常放在右邊)沒有足夠的空間擺放,而跑到整個Blog的下面去,主要有下面兩項原因導致這種情形發生,以下底這段sample為例:#outer-wrapper {
width: 660px;
padding: 10px;
....... }
#main-wrapper {
width: 410px;
float: left;
....... }
#sidebar-wrapper {
width: 220px;
float: right;
........ }
※以上2種情形在Firefox中,會自動產生scroll bar,例如:[Blog] IE底下一片空白的UTF-8網頁...囧,而不會導致sidebar跑掉。若在Firefox中還有這樣的問題的話,那可能就是自己太智障,將sidebar-wrapper的width值設太大,導致"outer-wrapper -> width < main-wrapper ->width + sidebar-wrapper ->width",那就是你的錯了,快改小一點吧...
.Solution:#main-wrapper {改成上面的樣子,就行了... ^_^
width: 410px;
float: left;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
....... }
#sidebar-wrapper {
width: 220px;
float: right;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
........ }
| [+/-] |
[Blog] IE底下一片空白的UTF-8網頁...囧 |
之前阿晟申請的Blog,遇到了一個怪問題,就是用IE瀏覽他的Blog的話,看到的只是白白濛濛的一片無字天書,只有用IE才會...囧rz...,我也搞不清楚是怎麼一回事,後來在 Lordcolus's Blog看到了同樣的問題,同時找到了解法...感恩 ^_^...
.Problem:※參考資料:zonble's promptbook -> 一片空白的UTF-8網頁
如果您在Windows作業系統上,使用Internet Explorer瀏覽器的話,往往會出現這樣的狀況:在瀏覽使用UTF-8編碼製作的中文網頁時,瀏覽器並不能夠自動偵測網頁的編碼方式,從原本預設的語 系編碼(例如Big5正體中文等),切換成改以UTF-8編碼,結果畫面上就是一片空白,什麼都沒有,即使在網頁當中,已經加上了特別標明內文語系的 metadata標籤:
在Internet Explorer中,還是沒有辦法正常處理。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
※相關資料補充:IE 解析網頁編碼時以 HTML 內的標籤優先,再來是 HTTP header 的訊息;mozilla 系列的瀏覽器相反。
所以如果是用 Apache 架的網站,httpd.conf 預設值裡有 AddDefaultCharset=ISO-8859-1,如此一來,不管網頁裡寫了什麼,mozilla 系列的瀏覽器都會當成是這個,IE 則相反。
另外,無論是 PHP、JSP、ASP 或其他動態網頁的 script language,如果需要作編碼設定,最好放在最前面,比 HTML 的 meta 還要前面
.Solution:在</head>的部份,把”Content-Type”放在最前面,便可以解決這樣的問題了。所以。
因此,在Google Blogger中的解決方法:
1.手動設定IE的編碼為 Unicode (UTF-8) ...但每次都要手動設,暫時性的...
2.修改Template將< $BlogMetaData$ >移到<title>的前面即可。標準解法...
| [+/-] |
[Blog] Backlink tags usage |
如何在Blogger裡頭加入「引用此篇文章的連結呢?」以及讓他人可以很簡易的透過一個「create a link」的動作即可在他自己的Blogger中引述他人的文章。
很簡單,參考Blogger Help裡頭的 Backlink tags就可以輕鬆完成囉 ^^...
.主要動作就是把底下這段code:
<BlogItemBacklinksEnabled>
<a name="links"> </a>
<h4>Links to this post:</h4>
<dl id="comments-block">
<BlogItemBacklinks>
<dt class="comment-title">
<$BlogBacklinkControl$>
<a href="<$BlogBacklinkURL$>" rel="nofollow">
<$BlogBacklinkTitle$></a> <$BlogBacklinkDeleteIcon$>
</dt>
<dd class="comment-body"><$BlogBacklinkSnippet$>
<br />
<span class="comment-poster">
<em>posted by <$BlogBacklinkAuthor$> @
<$BlogBacklinkDateTime$></em>
</span>
</dd>
</BlogItemBacklinks>
</dl>
<p class="comment-timestamp"><$BlogItemBacklinkCreate$></p>
</BlogItemBacklinksEnabled>貼到你的blog中所想出現的位置,一般來說都是放在<ItemPage> and </ItemPage> 這個tag中比較常見,在mainpage中不要出現比較不占版面空間。