[動機]
我是漫畫瀏覽器 MangaMeeya 的重度使用者;事實上,MM不只可以用來看漫畫,其種種強大的特色已取代了我對ACDSEE等其他看圖軟體的需求,成為我系統裡預設的看圖選擇
@優點
.速度:啟動快,載入圖片也快
.便利性:一鍵就可以完成平滑捲動圖片、至圖片底部自動換頁
.多種瀏覽模式:單頁、雙頁、左開、右開
.多種縮放模式
.常用濾鏡:明度、銳利度
等等
@缺點
.作者已停止開發
.雖然可以輸入URL,分析網頁後直接瀏覽頁面上的圖片,但要重複下載圖片(無法利用瀏覽器的快取),操作起來感覺沒有瀏覽本機檔案時靈敏
OK,到這裡打住,我今天不是來推廣MM...囧rz,只是想說明我對看圖軟體功能的需求。
對於網頁內瀏覽圖片(在論壇看圖、開網路相簿、在漫畫網瀏覽),我已被MM養壞胃口,因此一直很不滿意,尋求方法能重現使用MM的體驗
偶然間發現了 image mikirenaizer 這支 userscript,其功能相當簡單,若視窗內有圖片只顯示了上半部,則下捲一頁時讓視窗上緣與圖片貼齊。單看功能說明可能無法讓人體會有什麼便利之處,事實上你可以回憶一下,看圖時是不是經常在"下捲一頁"後又按幾次"上",以將整張圖片呈現在視窗內
因為這支 userscript 只能滿足部分的需求,我決定對其進行改造,新增功能如下
.平滑捲動:
由於script內直接使用scrollTo()捲頁,即使FX啟用了平滑捲動也無效,還好我在jQuery找到了解決方法。而且平滑捲動相當吃CPU,我只打算在看圖時啟用
.捲動視窗貼齊圖片下緣:
原本的script只做了"捲動視窗貼齊圖片上緣",若圖片高於視窗,則下捲一頁後讓人有截斷圖片之感,而"捲動視窗貼齊圖片下緣"可以改善這點
.自動跳過高度小於200px的小圖
.使用jQuery重新改寫
呃...這不該算新功能,只是讓代碼變的更簡潔、更易於維護
[安裝與使用]
呃...這麼簡單的東西沒必要說明吧
個人心得貼心建議,逛對岸的漫畫網時,請搭配 autopager 這支擴展,保證所向無敵。一次下載所有圖片,不再為某些龜速網站所苦
[未來目標]
To do list
.便利性:一鍵就可以完成平滑捲動圖片、至圖片底部自動換頁
.多種瀏覽模式:單頁、雙頁、左開、右開
.多種縮放模式
這些需求不是 image mikirenaizer 這支小程式能承擔(要用到XUL),我找到了 Web Slide Show這個擴展為目標動刀,目前火熱開發中
[Reference]
.image mikirenaizer
http://www.geocities.jp/r9a2/soft/gmscr ... irenaizer1.autopager
https://addons.mozilla.org/zh-TW/firefox/addon/4925https://addons.mozilla.org/zh-TW/firefox/addon/14838.Web Slide Show
https://addons.mozilla.org/zh-TW/firefox/addon/9124[求救時間]
麻煩熟悉 dom、xpath 的達人解救一下,這支腳本使用下列代碼選取文件內的圖片
document.evaluate( '//img[not(@height) or @height>100]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
這段 xpath 表達式讓我非常疑惑,有的頁面可以完全過濾小圖,有的頁面不行,似乎 img 這個 element 要有設定 height 這個 attribute 才能過濾,但很多圖片基本上只有src這個屬性
所以我不得不額外在捲頁前加個判斷
if(targetNode.height < 200) continue;
請問 xpath 不是在 dom tree 裡面做搜尋嗎? 為什麼明明存在的 height 屬性會找不到,非要網頁內有指定 height 這個 attribute 才能過濾
查了一下MDC的dom reference,對一個物件來說,請問attribute和property有什麼不同?