不曉得哪時候開始,用 ie 開某些 blogger 的單篇文章會顯示「操作已中止」錯誤:
重現方法之一,是在 blogger 後台「意見設定」將「意見欄位置」改為「已內嵌下列文章」,然後在「版面配置」新增 MyBlogLog 的小工具,再用 ie 6 開啟單篇文章網址,就爆了。
關鍵是 blogger 內嵌意見表單的原始碼,裡面的 BLOG_CMT_createIframe
跟 ie 不合,如果把這句延到頁面讀完再執行,可以避開「操作已中止」錯誤:
// 以下是在模板內 if ( document.addEventListener ) { document.addEventListener( "DOMContentLoaded", function(){ BLOG_CMT_createIframe('<data:post.appRpcRelayPath/>', '<data:post.communityId/>'); }, false ); } else if ( document.attachEvent ) { // ie 跑這邊 window.attachEvent("onload", function(){ BLOG_CMT_createIframe('<data:post.appRpcRelayPath/>', '<data:post.communityId/>'); }); }
不過即使如此,測試留言功能依然失敗,送出時會發生「存取被拒」。
我的建議是:除了內嵌表單,最好也弄個鏈結到留言頁面,例如這個 blog 在單篇文章可以點「張貼意見」旁的小傘標 ☂(ie 可能會顯示方框)看到效果。原理可參考舊文 內嵌留言表單 + 彈出留言視窗 中的 手動插入「彈出留言視窗」鏈結。
不然使用者關掉 JavaScript 會找不到地方留言。