如何用JavaScript偵測網頁瀏覽器是否有擋廣告? 2023 年 12 月 23 日 Magic Len JavaScript 反反廣告應該是大部份有在經營網站的人都想做的事情,筆者也不例外。以前用過一些偵測AdBlock等軟體的套件都因年久失修而失效,因此決定來自己做一個。「AdBlock Checker」是筆者開發的套件,可以偵測網頁瀏覽器是否有擋廣告。 繼續閱讀
幫助存取HTML的時間日期元素值的函式庫 2023 年 12 月 23 日 Magic Len JavaScript 在預設的情況下,基於日期和時間的HTML input元素值是以UTC時區為基準,這很容易造成混淆而誤用。 繼續閱讀
如何根據容器大小自動調整HTML上的文字,使文字儘量不破壞排版 2023 年 12 月 23 日 Magic Len JavaScript 早在2017年筆者在開發前端網頁的時候就遇到兩個問題:如果要做一個網頁,這網頁滿版顯示,在任意螢幕尺寸下都要長的差不多,文字的大小要怎麼處理呢?還有就是在文字高度僅允許一行文字的空間下,要怎麼保證使用者輸入的文字不會因為太多而使得顯示出來的時候換行,或是換太多行了,而導致畫面跑版? 繼續閱讀
如何寫程式讀取中華民國健保卡內的資料?在網頁中也可以讀取嗎? 2023 年 12 月 23 日 Magic Len 作品分享、 JavaScript 中華民國的健保IC卡必須使用相容於PC/SC介面的IC讀卡機來讀取。PC/SC的規範是由微軟與其它IC卡廠商共同訂定出來的,統一了IC卡的介面。因此如果要讀取IC卡,要在環境安裝好讀卡機的驅動程式,並且使用PC/SC的函式庫提供的功能來讀取。不過要使用PC/SC函式庫,並不是每個執行環境都能夠做到,像是網頁瀏覽器現階段應該還做不到,要等Web Smart Card API出來才行,但還是有其它方式... 繼續閱讀
如何寫程式計算時間和日期的差距? 2023 年 1 月 24 日 Magic Len 研究分享、 Rust、 演算法、 JavaScript 有時候我們會需要寫程式去計算兩個時間點的差距,以求得年齡、經過了多少的時間,或是否還在某個期限之內等等的資訊。日(day)與時、分、秒的差距很好算,因為它們是固定的時間(不考慮閏秒)。但年、月就不一樣了,一個月可能有28至31天,一年可能有365或366天,我們無法直接將兩個時間點(的時間戳記)相減之後去除上一個固定的單位(例如拿相差的秒數去除以2592000秒)來算出隔了多少年、月,硬是要這麼算... 繼續閱讀
如何寫程式判斷閏年並計算一個月有幾天? 2023 年 1 月 3 日 Magic Len Go、 Java、 Rust、 JavaScript 我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式,以及這兩種年份是差在前者的二月有28天,後者則是有29天。所以平年整年一共有365天;閏年整年一共有366年。這是身為一個地球人的基本常識,但在小學的時候,老師可能只會告訴我們把西元年份的數字除以4,如果可以整除,那麼這年就是閏年,否則是平年。老師說的也不能說是錯的,只是不太完整,實際上,閏年的正確判斷方式... 繼續閱讀
如何讓 JavaScript 程式等待(睡眠)一段時間? 2022 年 12 月 27 日 Magic Len 研究分享、 JavaScript 雖然在撰寫程式的時候,在大部份的情況下我們都想要讓程式執行速度愈快愈好。但有時候在寫測試程式或是爬蟲時,我們會希望讓程式等待一段時間再繼續執行,以模擬I/O延遲或是真人操作延遲的效果。不過JavaScript並沒有直接提供讓執行緒睡眠(sleep)的功能,要怎麼模擬出sleep函數呢? 繼續閱讀
在Java和JavaScript中,字串的字數就等於字元數量嗎?錯! 2022 年 12 月 13 日 Magic Len 研究分享、 Java、 JavaScript 在Java和JavaScript中,我們經常會使用字串(String)提供的「length」成員(member)來抓取這個字串的字數。由於Java和JavaScript並不像Rust或是Golang程式語言這樣會直接抓到字串在經過編碼之後的位元組數量,而是會得到字元的數量,所以我們很直覺地就會在Java或JavaScript用這樣的方式來計算字串的字數。 繼續閱讀
JavaScript 要如何複製物件? 2022 年 12 月 8 日 Magic Len 研究分享 在寫JavaScript程式的時候經常看到一些奇妙的程式碼被用來處理物件的複製,這篇文章會列舉筆者看到的一些作法,並提供較好的作法給大家參考。 繼續閱讀
使用 Fastify 框架以及 TypeScript 語言來開發 Web 服務的起手式 2022 年 11 月 24 日 Magic Len JavaScript Fastify是一個運行在Node.js上的Web框架,注重開發體驗和低開支(overhead),提供完整的Web框架特性,但也保有良好的效能,效能要比Express框架還好上不少。Fastify支援TypeScript語言,筆者建議使用TypeScript來開發Fastify應用程式。然而,要建立出一個完整TypeScript專案是一件繁瑣的事情,我們會需要安裝多種套件及工具並撰寫設定檔和程式碼... 繼續閱讀