2007年03月26日 09:44

增加書籤插件

Without Boundaries 看到用 jQuery 寫成的 Javascript 程式,功能十分強大,本想做邊欄折疊,但是最後出來效果和想像有落差,主要是加上圖片會讓標題位置偏左(因為預設位置居中的關係),和其他標題顯得不協調,所以還是放棄先乖乖用下拉式選單。最後只使用了書籤插件,其他如導覽列、更改引用回應標題、圖片半透明效果等我都沒加進去。還有引用網址的位置其實並不想更動,但看來得改 jQuery 檔才有辦法,所以就不管它了。

書籤插件放在原本文章最後的 "Posted by XX" 的地方,總共有五個一般部落客最常用的書籤平台:del.icio.us、technorati、myshare、hemidemi、digg。

不過因為 cola 的下拉式選單程式用 form 表單,所以用 IE 看會多出高度,我原先的月份文章因為沒用到 javascript 也不是 form 表單,所以在 IE 底下的版面也沒問題,只是無法跳出新頁,還要找方法解決。

  • orpheus 發表於樂多部落格編輯本文
    樂多分類:網路/3C │昨日人次:0 │累計人次:15
    Ads by Roodo! 
    回應文章
    Hello!

    關於圖片會讓標題偏左的問題,的確是一個缺點,我的解決方案是全部標題都偏左,哈哈,等我想到解決方案在下一版會再修正吧!

    至於引用網址的方面,如果不想套用,可以去原始碼裡面(沒有壓縮的版本)找到標示移動引用網址的幾行程式碼,移除即可。有什麼問題我可以幫忙解決跟我說一聲囉!
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月26日 17:17
    我也是想到全部偏左,不過這樣就要換版型了,或者設定標題位置,
    但是這樣居中位置會不夠精確.....

    因為用 Editplus 打開原始碼看到中文變成亂碼,所以不敢亂改,
    用記事本看就沒問題了,謝謝你寫這個程式!
    | 檢舉 | Posted by Orpheus at 2007年03月26日 19:05
    form 在 IE 版面產生的高度解決了,方法是用 table 包起來,
    然後把 form 夾在 td 和 tr 之間。
    | 檢舉 | Posted by Orpheus at 2007年03月26日 19:14
    最近我還在研究一些其它功能,所以沒有辦法在短期內出新版。。

    關於移除那原始碼的問題,在 src 檔裡第 70~ 79 行可以全部移除掉(以下這幾行):

    // 移除「引用URL」並移出連結,注意像展現一個月網誌的頁面,沒有邊欄
    var track_url = '';
    var track_check = $(this).find(".trackback-url").length;
    if((side_check == 0) && (track_check != 0)) {
    $(this).find("h3:contains('引用URL')").remove();
    track_url = "引用網址:" +
    ($(this).find(".trackback-url").text()) +
    "
    ";
    $(this).find( ".trackback-url" ).remove();
    }


    因為如果把 track_url 這變數移除,在 124 行這裡:
    $(this).html( bookmark + m + p + track_url );

    會再度用到 track_url ,所以會造成所有書籤與導覽列的執行錯誤。所要把第 124 行改成:
    $(this).html( bookmark + m + p );

    這樣應該就 ok 了!至於 MyShare 的問題,你有什麼範例給我看看嗎?因為我還是找不出有什麼問題 :P 或許是我的文章都過短了吧!呵呵
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月27日 05:38
    成功了,謝謝!

    你的文章很長呀,就拿這篇教學文章當範例:
    http://blog.roodo.com/withoutboundaries/archives/2883877.html

    在IE底下MyShare和黑米沒反應,Firefox的錯誤資訊是:

    Request-URI Too Large

    The requested URL's length exceeds the capacity limit for this server.
    | 檢舉 | Posted by Orpheus at 2007年03月27日 05:49
    感謝啊!我找到原因了!呵呵!
    Internet Explorer 的 URL 好像不能超過 2083 個字元,還有許多 Server 也會限制 URL 的長度。(大概是怕駭客攻擊吧,我在猜)

    以下是解決方法,在 src 第 61 行:

    // 取得網誌的內容
    var d = $(this).find(".main").text();
    // 移除網誌內容內不需要的字串
    d = removeChars(d, bookmark_desc_ex);

    改成以下程式碼:

    // 取得網誌的內容
    var d = $(this).find(".main:first").text();
    // 移除網誌內容內不需要的字串
    d = removeChars(d, bookmark_desc_ex);
    // 確定 URL 不會過長
    var MAX_URL_LENGTH = 2048;
    var MAX_URL_BASE = 200;
    if( (d.length + t.length + 200) > MAX_URL_LENGTH)
    d = d.substring(0, (MAX_URL_LENGTH-MAX_URL_BASE-t.length));

    這樣應該可以暫時解決這類問題。我會在下一版改良,是否可以麻煩您在我教學那裡回應這個問題,我下次改版的時候會記得解決!再次感謝你的幫忙喔!
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月27日 08:11
    OK, 沒問題了。:D
    | 檢舉 | Posted by Orpheus at 2007年03月27日 18:21
    還有啊,在你首頁會出現 Javascript 的錯誤,原因是因為你好像把 folder_on 這個 variable 移除了。最好把他留著並給予 "false",或者把全部原始碼裡有關於 folder_on 的地方都清乾淨!不要啟用折疊功能,只要把 side_titles = ''; 即可! ^ ^
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月28日 05:56
    改過來了,請幫我看看還有沒有錯誤,因為我的瀏覽器上並沒有發現這個問題,謝謝!
    (比較奇怪的是首頁第一篇就會秀出書籤列)
    | 檢舉 | Posted by Orpheus at 2007年03月28日 07:52
    呵呵。。。你好像還有一個是 alphamouseout 這變數也刪除了。。所以會造成這種詭異現象

    //書籤與導覽插件透明參數
    var alpha_mouseout = 游標離開透明度;
    var alpha_mouseover = 游標在上透明度;

    我是這樣設的:
    //書籤與導覽插件透明參數
    var alpha_mouseout = 0.3;
    var alpha_mouseover = 1.0;

    可以自己調調看... 1 是完全不透明, 0 則是完全透明
    其實教學裡的每個變數最好都保持住,因為我沒有設定開啟關閉功能的東西,所以刪掉設定變數很容易造成錯誤,這是我設計時的疏失,我下一版會改進的!
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月29日 07:52
    加上去了,結果變成首頁每一篇都有書籤列,試過加上所有變數也一樣...(這樣也可以啦,風格統一就好 ^^;;)
    還有滑鼠移到書籤圖示上的時候有點問題。

    引用列表標題變數也加了進去,卻沒有改變,加上所有變數的時候才會更改。

    真抱歉有這麼多問題,謝謝你的耐心!
    | 檢舉 | Posted by Orpheus at 2007年03月29日 12:05
    No problem! Glad to be at service!
    | 檢舉 | Posted by Anubis From Memphis at 2007年03月29日 13:30
    新版樂多不適用這語法,暫時先拿掉了。
    | 檢舉 | Posted by Orpheus at 2007年04月22日 11:07