沒穿方服

索引

顯示╱隱藏內文
顯示具有 ie 標籤的文章。 顯示所有文章
顯示具有 ie 標籤的文章。 顯示所有文章

不曉得哪時候開始,用 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 會找不到地方留言。

犯了不易察覺的錯誤:

使用 innerHTML 動態產生 flash 物件(object / embed)然後插入頁面,影片裡用 ExternalInterface.addCallback(ActionScript 3.0)公開給 JavaScript 的函數,在 ie 6 上會找不到。

問題點在以下片段:

var obj = document.createElement('div');
obj.innerHTML = '<object (略…)><embed (略…) /></object>';
document.body.appendChild(obj);

想重現的話,我寫了簡單的原始檔放在這裡(DivShare),別忘了要用 ie 開才能得到最佳瀏覽效果。

解決辦法是把 innerHTML 那行寫在最後,變成:

var obj = document.createElement('div');
document.body.appendChild(obj);
obj.innerHTML = '<object (略…)><embed (略…) /></object>';

結論,在 DOM 元素實際被加進頁面之前,ExternalInterface 不是不會生效(前面沒提到,ExternalInterface.call 會在 appendChild 之前就 call 了……),但是 ExternalInterface.addCallback 會碰到未知的問題。

內容都側移到右邊去了,而且螢幕越大,效果越好。

背景的手指展現不凡的親和力

未支援 CSS 的 hover 偽類,所以一些滑鼠移上去才有的功能/效果便自然消失。

e化後的頁面更為簡潔、清爽
該亮的都不亮

PRE 標籤裡的泰語文字不見了,我需要安裝東南亞語系的支援嗎?

泰語被和諧了

唯一能看的只剩這個。

還是下載不含 Google Toolbar 的 Firefox 吧!