跳到主要內容

發表文章

目前顯示的是 二月, 2014的文章

網頁連結元素 Javascript Call 之 IE 地雷

相信很多Web開發者都會使用無作用連結做一些項目的設計
例如:<a href="javascript:void(0);" onclick="handler()" > Click me! </a>
設計的原因包含了 link element 的外觀較醒目、預設的mouseover行為的cursor就是pointer等等

你可以注意到其中的href屬性設定了 "javascript:void(0);"
href 裡前綴為javascript:的內容會被做為 inline javascript call 執行
如此可以避免執行browser的 link element 的頁面跳轉預設行為
void(0); 則表示在JavaScript中什麼也不做
這樣就完成了一個無作用連結

既然 href 可以用來執行JavaScript,當然你也可以用  "javascript : functionA();" 的形式
讓 link element 在被點擊後執行 functionA
聽起來是很方便的做法,既然如此為什麼還會很常聽到不要這樣做的建議?
原因有2點

1是這一段 function 是用eval parse文字後才執行,效率會差一些
當然這個影響並不是那麼大,下一個原因才是重點,也是今天踩到的雷

2.在瀏覽器間的行為並不一致
當使用的function會回傳DOM object,IE會將頁面導到空白頁面並顯示[object HTMLElement]的訊息
而且直到最新的IE11的行為也是如此
這一點算是IE在行為的解讀比較奇怪,都已經是執行JavaScript了卻還保留原本的跳轉頁面行為

所以基於以上理由,少在 link element 的 href 屬性使用 inline JavaScript call 吧

Javascript操作表單元素

最近處理表單輸入項時,實在厭倦了使用getElementById、getElementsByTagName等DOM方法取得元素
一般的輸入項(input、textArea)還算好處理
只是碰上了radio button或checkbox這類群組型的輸入項還是比較麻煩
後來想一想應該有更優雅的方式能處理取得表單輸入項的元素或值才對
所以就找到了用HTML Collection的解決法

QNAP QPKG開發經驗

last update:2015/02/10

前一陣子在忙的整合,只是因為很懶才現在寫出來
老實說也是近期我才知道NAS這東西究竟能做什麼
剛好有一家客戶是用Synology的產品跑Ragic
而QNAP也找上門來談合作
這樣就把台灣前兩大的NAS廠的東西都摸過啦(註:也是世界前兩大)

我個人認為NAS適用於完全都不懂的新手或玩Linux及程式很熟的IT使用者
新手就不用考慮有的沒的需求,看平台提供什麼樣的服務就使用那些服務
如果想藉NAS做到特定需求,得要有些能力才能夠建置完成

對於這兩家的NAS硬體部分沒有研究,這部分就不提
以目前接觸過這兩家的產品的軟體面來說,我覺得QNAP的方向是對的
而QPKG就是把各家程式包裝成QNAP自家格式的 App 讓使用者能夠輕易安裝
他們的介面對於一般使用者會是比較親切的作法