網頁

內蒙古之旅第七天:完

海風 2009年7月29日 02:39

4:45am Morning call XD,不過也不需要Morning call啦,根本沒睡。懷著依依不捨的心情收拾行裝,雖然這個步驟每天都在做,但今天執拾得特別慢。一邊拾,一邊回想這幾天所發生的事—草原、沙漠、石窟、懸空寺和王府井。

內蒙古之旅第六天:北京歡迎你

海風 2009年7月28日 01:02

5:15am Morning call。其實旅行來到第六天,對我們來說都差不多等於是最後一天了,因為明天其實是沒有行程,而我們亦要乘中午機回香港。最後一天,好好珍惜吧。

內蒙古之旅第五天:別了內蒙

海風 2009年7月20日 15:01

5:30am一天比一天早的Morning call又來了。吸取了先前的教訓,今天早了十五分鐘便起床了,高速準備好行李後打算找其他人快點去餐廳。可是另一間房的人只是剛剛起床=_=,最後只有我和阿Wing兩個早下去先用餐了。

內蒙古之旅第四天:沙漠

海風 2009年7月17日 22:45

6:30am一大清早又收到Morning call knock,這次是小張來叫我們呢。原來先前Joey已經敲了一次,但我們沒有人起床,而團友們都在吃早餐了。不用說也知道太陽已經高掛在天上。環顧四周,原來大家還在睡呢,看來大家都錯過了草原的日出。

內蒙古之旅第三天:大草原

海風 2009年7月12日 17:35

6:15am起床,morning call比昨天早了15分鐘。昨晚真是非常好睡,至少有冷氣,床又舒服。不過又要收拾行李了……。不愧是五星級酒店的餐廳,裝潢有氣派,冷氣又涼XD。

修正Neo在Opera的bug

2009年5月9日    

如果你用的瀏覽器是Opera的話,會發現由首頁或個別文章的連結進入的話留言不會自動更新,但用選單更新的文章又不會有這個問題。這真的很糟糕,用Opera經超連結進來的人會誤以為文章沒有留言。後來我用Opera打開錯誤主控台看到以下的一句。

Error:
name: TypeError
message: Statement on line xxx: Cannot convert undefined or null to Object

這是什麼意思呢?答案就出在「main」這個includable。

<b:includable id='main' var='top'>
  <!-- POSTS -->
  <div class='blog-posts'>
    <b:loop values='data:posts' var='post'>
      <b:include data='top' name='status-message'/>
      <b:include data='post' name='post'/>
      <script language='javascript'>
      var blogAuthor = '<data:post.author/>';
      fetchComments('<data:post.id/>');
      </script>
    </b:loop>
  </div>
    <b:if cond='data:blog.pageType != "archive"'>
    <div class='comments' id='comments'>
      <center><h2>No comments yet</h2></center>
    </div>
    </b:if>

因為fetchComments(postid)會call到updateComments(json)最後到updateCommentsPage(page),而updateCommentsPage(page)會將留言寫到文章中ID為「comments」的這個Div。

問題是,第一次載入頁面fetchComments的時候「comments」根本就尚未出現,所以無法顯示留言的問題只在第一次載入的時候發生。解決方法也很簡單。

先在你的template找到「comments」這個includable並改成下面的樣子,反正整個留言都是由neo.js產生的,所以修改這裡不會有問題。

<b:includable id='comments' var='post'>
    <div class='comments' id='comments'>
      <center><h3>No comments yet</h3></center>
    </div>

</b:includable>

之後再將將「main」includable修改成下面那樣子。

<b:includable id='main' var='top'>
  <!-- POSTS -->
  <div class='blog-posts'>
    <b:loop values='data:posts' var='post'>
      <b:include data='top' name='status-message'/>
      <b:include data='post' name='post'/>
       <b:if cond='data:blog.pageType != "archive"'>
        <b:include data='post' name='comments'/>
       </b:if>
      <script language='javascript'>
      var blogAuthor = '<data:post.author/>';
      fetchComments(&#39;<data:post.id/>&#39;);
      </script>

    </b:loop>
  </div>
</b:includable>

儲存範本後再用Opera試試看,這樣做其實只是把「comments」扔上前來,至於為什麼只有Opera才有這個問題我就不知道了。

尚未有回應