免費字型檔圖示 Font-Awesome 是我的主力圖示來源,至今已到 6.1.1 版,授權方案也有些改變。前幾天 Google Material 圖示一文提到 Font-Awesome 6 分為 Free、Pro、Pro Max 三種方案,當時的認知是只有 Free 可免費用於個人或中低量用途(每...

前陣子找到 JavaScript 快顯通知套件 - NOTY,雖然原作者已不再維護,但評估它最符合我的需求,如要修改也在我的能力範圍,維持原判。但接二連三有讀者提到,老朋友 SweetAlert2 其實就有定時自動關閉及其他快顯通知所需功能,有「眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處」的驚喜感...

我很愛用程式產生器節省無謂手工,其中有個經典應用是用程式產生器將服務元件轉成 WebAPI/MVC Controller + 客戶端呼叫程式庫,原理不難,程式產生器參照 C# DLL,用 Reflection 找出方法及所需參數,再從 XML Documentation 註解檔(.xml)取出對應說...

前幾天分享我找到好用的快顯通知套件 - NOTY,當時從一堆套件選中 NOTY,它只需一個 js 一個 css 搞定,甚至支援 IE10+,在 Github 上獲得超過 6700 顆星算是主流選擇之一,而簡便性與擴充性感覺不錯,最吸引我的點 - 不依賴 jQuery。雖然我一定會靠 jQuery 再...

先前用 FontAwesome 時學到網頁字型檔格式是 woff/woff2,較早期 IIS 需加設 MIME Types 才能正確下載。前陣子查閱 Google Material Icons 文件,讀到一段字型檔放自家網站的 CSS 設定範例: @font-face { font-family...

CLI 指令執行結果要存成檔案很簡單,加上 > filename 將 stdout 轉向檔案就可以了。(或是 2>&1 >filename 連錯誤訊息也一併寫入) 但這麼做有個缺點,導向檔案後螢幕完全看不到結果,遇到耗時較久的作業會無法掌握進度,連程式有沒有當掉都搞不清楚。...

應用系統網站免不了會用到小圖示。早從 ASP/WebForm 時代,我就有四處蒐集 16x16、12x12 迷你 GIF 圖示的習慣,但檔案來自四面八方,很難要求配色、風格一致,所以認識 Font-Awesome,我如獲至寶。一套包含數百上千個圖示,用一個 woff/ttf 檔加 css 取代上千個...

當遇到狀況,網頁要顯示訊息的形式有很多種,最無腦最粗暴的做法是 alert(): 標題、位置、樣式沒得選,也談不上與網頁風格一致,但系統內建不必花腦筋,程式碼可中斷等使用者回應再繼續,用起來超簡單是它最大優點。 但如果你的網站要拿來換錢錢或分數,簡陋的 alert()/confirm() 很容易讓...

複製物件是 JavaScript 的實用技巧之一,十幾前我就學會用 jQuery.extend() 搞定,常見應用是結合參數預設值及函式傳入的設定值,例如: const defaults = { fontSize: '10pt', color: 'white', backgr...

自從宣告 IE 封印解除,我一改過去儘量用古老寫法以免惹 IE 生氣的保守心態,積極學習現代 JavaScript。猶如鄉巴佬進城,連看見自動販賣機也會大讚科技好進步。對專業前端開發人員來說,2022 年還在介紹這種基本常識簡直笑死,但心想「總有比我更晚解封的人」,還是拋開羞恥心(謎:不要提那種你沒...

昨天分享透過 vue3-sfc-loader 載入 .vue 檔案的解決方案,讓輕前端也能輕鬆應用 SFC 元件實現氣刀體一致,但仍有美中不足之處。 首先,vue3-sfc-loader 的原理是把 Vue CLI 開發階段用的 SFC 編譯程式搬到瀏覽器端( vue3-sfc-loader.js ...

前幾天提到在 ASP.NET 使用輕前端 整合 Vue.js 做 MVVM,若遇到伺服端元件輸出 script/style 的注意事項。FB 留言區 Died Liu 分享透過 defineAsyncComponent 方法載入 .vue 元件檔的做法,不需要 npm、webpack 也能享受用 ....

昨天分享 .NET 4.5.2 專案參照 4.6.1 專案,只有警告訊息但編譯會出錯的茶包,靠將 A 專案升為 4.6.1+ 解決,但愈想愈不對... 若低版本 .NET 參照高版本註定無法運作,為什麼被歸為警告而非錯誤?而 .NET 4.X 採「就地更新」(In-Place Update)政策,在...

某古老專案建置時,.nuget\nuget.exe 出現以下錯誤訊息: 用戶端與伺服器無法溝通,因為它們沒有公用的演算法。 The client and server cannot communicate, because they do not possess a common algorith...