沒穿方服

索引

顯示╱隱藏內文

不曉得哪時候開始,用 ie 開某些 blogger 的單篇文章會顯示「操作已中止」錯誤:

讀取到一半,操作已中止 然後就無法顯示網頁

重現方法之一,是在 blogger 後台「意見設定」將「意見欄位置」改為「已內嵌下列文章」,然後在「版面配置」新增 MyBlogLog 的小工具,再用 ie 6 開啟單篇文章網址,就爆了。

關鍵是 blogger 內嵌意見表單的原始碼,裡面的 BLOG_CMT_createIframe 跟 ie 不合,如果把這句延到頁面讀完再執行,可以避開「操作已中止」錯誤:

// 以下是在模板內
if ( document.addEventListener ) {
  document.addEventListener( "DOMContentLoaded", function(){
    BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;, &#39;<data:post.communityId/>&#39;);
  }, false );
}
else if ( document.attachEvent ) {    // ie 跑這邊
  window.attachEvent(&quot;onload&quot;, function(){
    BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;, &#39;<data:post.communityId/>&#39;);
  });
}

不過即使如此,測試留言功能依然失敗,送出時會發生「存取被拒」。


我的建議是:除了內嵌表單,最好也弄個鏈結到留言頁面,例如這個 blog 在單篇文章可以點「張貼意見」旁的小傘標 ☂(ie 可能會顯示方框)看到效果。原理可參考舊文 內嵌留言表單 + 彈出留言視窗 中的 手動插入「彈出留言視窗」鏈結

不然使用者關掉 JavaScript 會找不到地方留言。

陽春的 blogspot 連留言編號都要自己做,來龍去脈請見 Abin's Tech Note: 增加文章留言回應的編號 寫得很清楚。作法方面除了該篇採用的 JavaScript 外,也可考慮 CSS counter,在樣式裡加上:

.comments {counter-reset: count;}
.comment-timestamp:before {
  content: counter(count) '.';
  counter-increment: count;
}

其中 count 變數可以隨意改名,content 屬性也可作變化,稍微搜尋一下應該就有參考了。

格式可以稍做變化

※很舊的瀏覽器不支援(我真好心,每次都提這個)

Blogger 預設模板 <header> 中有一行 <b:include data='blog' name='all-head-content'/> 會自動插入有用的 meta(版權、編碼等)、link(預設 Feed 網址等)和其他。

幾個原因考慮刪除:

  1. 會自動插入預設的 favicon,順序沒弄好的話會蓋掉手動加的 favicon。
    參考這篇 Blogger Buster: Fixing Custom Favicons for Blogger Blogs
  2. 會自動插入 MSSmartTagsPreventParsing 這個 meta 項目,防止微軟跑聰明標籤?
  3. 最近又默默加了一段語法,內容可參考 七月佑安: 解決Blogger下jstiming和_WidgetManager未定義的錯誤(但該文結尾並不刪除 'all-head-content');這段語法除了無預警塞進來外,裡面的 & 符號也會在 HTML 驗證造成 9 個錯誤。

只是如第三點的連結中所說,要是刪了,日後說不定又會出問題。

心一橫把 Prototype 拆掉換成 jQuery。 前輩,別了!

轉職後裝的裝備也不一樣:
prototype 1.6.0.3 jQuery 1.3.2 感覺到
燈箱 Lightbox 2 jQuery lightBox plugin esc 鍵有問題要自改
音效 Javascript Sound Kit flashSound
餅乾罐 Cookie Jar jquery.cookie.js
jquery.json.js
jQuery cookieJar
好,不過分好多檔
螢光筆 SyntaxHighlighter 1.5.1 同左(這套跟 lib 無關) PayPal 沒錢不能用 2.0
bg 動畫 script.aculo.us jquery.backgroundPosition 好,解放不少空間

也順便試試一直很好奇的 最新回應 2.0 by LVCHEN,果然超級容易安裝(而且還很好玩~)玩著玩著還把它抓回來、改無關緊要的地方(例如 <a> 換成 <input>)……下次升級我就麻煩啦。

上傳新範本時遇到的 bX-928o1o 錯誤,狀況如下:

  1. 小裝置即將刪除:

    列出的小裝置就是需要檢查的

  2. 很抱歉:

    bX-928o1o

搜尋一下會找到解答,把 <b:widget id='XX1' 裡的數字改正即可。

具體作法是參考舊的範本(就是管理介面「修改 HTML」那個),裡面有類似 <b:widget id='Feed1' 這樣的東西,但要上傳的範本裡可能是 <b:widget id='Feed4',兩邊 1 跟 4 沒對上就會出問題。

所以請修改要上傳的範本,把 widget id 改成跟舊的一樣即可。像前面例子就是要改成 Feed1

※ 把 widget 砍光再新增,id 好像就會重排的樣子,這樣改舊的 widget 來適應新範本應該也可行。