發表文章

解決網頁列印無法呈現背景圖片問題

圖片
之前寫了列印網頁指定區塊的功能,但最近才發現,在列印預覽時,背景圖片(寫在css)有時可正常顯示,有時候無法顯示。經過一番測試發現好像網頁還沒完全載入,列印預覽視窗已經跳出,所以直接列印出來也就不會有背景圖。 為了確保網頁完全載入才跳出列印視窗,最後將window.print()寫在window.onload事件觸發時才呼叫,如此一來就正常顯示背景圖了。 另外在測試的程過中,試過以setTimeout()延遲呼叫window.print(),但此方法有缺點,如果在設定的時間內,網頁的css、圖片還沒載入完成,還是會發生看不到背景圖的狀況。 最後還是將window.print()寫在window.onload事件為佳。

.htaccess 設定轉址,因新網址有含錨點(anchor)發生404錯誤

圖片
昨日收到Google Search Console每月報表,得知舊網站有部份網頁仍會被外部搜尋到,產生流量,需做301轉址到新網站,原以為參考先前寫過的轉址規則可以很快的「打完收工」,沒想到轉址後卻發生404錯誤。 原因出在新網址包含了錨點(#),經由轉址後「#」變成了「%23」,導致發生網頁不存在的404錯誤。 後來找到 mod_rewrite with anchor link 這篇文章,發現在 RewriteRule Flags 加上NE就可以確保#正常的呈現。

如何在ASP.NET中使用<label>標記?

由於工作上的web專案仍然使用web form開發,為了套bootstrap樣式,需要把lable控制項轉換成<label>記標,本來以為沒得解,卻無意找到這篇 文章 ,原來只要在label控制項設定AssociatedControlID屬性,指定好對應的控制項id,在網頁產出html的時候,就變成<label>😀。 官方文件: Label.AssociatedControlID Property

不專業EXCEL小筆記- 相同內容儲存格合併、批次將網址轉換成超連結

圖片
昨日遇到的問題,因為對EXCEL真的很不熟,便上網找了一下,剛好解決遇到我的問題,所以就筆記下來。 將從資料庫撈取的清單存成EXCEL,內容包含了網址,資料結構大概是像[圖一],每個使用者可能會有多個網址,為了方便看,打算將同一個使用者做合併,但總共有幾百筆資料,手動做合併會做到哭,所以找了一下其他做法,找到了 這一篇教學 ,寫的非常清楚,大概的方式就是建立小計欄位→合併空白儲存格→刪除小計→最後再複製格式。 另外為了讓使用者拿到EXCEL可以直接點網址就打開網頁,還需把網址轉換成超連結,EXCEL的自動校正會在輸入完網址,自動加上超連結,但資料是自動產出,非手動輸入,需要將滑鼠移到網址的儲存格點兩下才會自動產生超連結,這是要點到手抽筋嗎 😵,後來也是看了別人的教學,才想起可以複製格式的方式,作法就是先將第一筆資料點兩下,產生第一個超連結,再複製格式往下貼上格式。 最後做完的結果就像[圖二],上述兩種方法不一定是最好的解法,但至少都節省了我不少時間。 圖一:原始資料 圖二:處理後

用Python下載影片時發生錯誤(KeyError: cipher)

圖片
使用Python下載影片需再安裝套件pytube3,相關說明可以參考 官網文件 。 一切準備就續,輸入範例程式執行後發生錯誤,錯誤訊息最後為KeyError: cipher,查找到一篇文章提到解決方式,主要是因為套件的extract.py有地方需要修正。 確認套件安裝位置,在命令提示字元輸入 pip show pytube3,從Location:找到extract.py位置。 在打開extract.py,大約300行左右,會找到parse_qs(formats[i]["cipher"]),把cipher改成signatureCipher,(請注意大小寫),儲存後重新執行程式即可。 參考資料: https://stackoverflow.com/questions/62098925/why-my-youtube-video-downloader-only-downloads-some-videos-and-for-other-videos

AJAX請求json發生 404.3 - Not Found錯誤

圖片
 第一次寫由前端讀取json檔案,以AJAX呼叫本機端檔案,在本機開發時,一切正常。發佈至伺服器後,發生404錯誤,花了點時間確認路徑正確無誤,最後到伺服器端執行網頁後出現「 HTTP 錯誤 404.3 - Not Found 因為網頁伺服器上設定的多用途網際網路郵件延伸標準 (MIME) 對應原則,而無法提供您要求的網頁。如果此網頁為指令碼,請新增處理常式,而且如果它是應該要下載的檔案,請新增 MIME 對應。 」 看了微軟的網站說明: 如何解決執行 ASP.NET 應用程式發生 HTTP 錯誤 404.3(一點通系列 - MVP 撰寫) , 於是又確認了一下伺服器的設定,發現IIS早已具有相關的設定。 後來又找了其他資訊,才知道還需要設定MIME類型,或者在web.config檔設定 mimeMap。 方法1:至IIS設定MIME→新增.json類型。 方法2: web.config檔設定mimeMap

PHP Debug使用 Notepad++ 和 Xdebug

圖片
最近工作上需要瞭解一套使用PHP Framework開發的系統,但程式碼多到看不過來,不知如何切入,想以debug的方式找系統執行上的蛛絲馬跡,也對後續開發有所幫助。 實際找了一下發現還滿多方案,因為懶的再安裝其他東西,最後選擇比較適合目前開發環境(windows)的方式:Notepad++ 搭配 Xdebug,雖然Notepad++的DBGP Plugin最後更新的版本感覺有點舊(2012),但目前看起來還堪用。 找出適合開發環境的版本並 下載Xdebug 提醒:除了需要挑選與PHP版本一致外,也需確認PHP是TS(Thread-Safety)還是NTS(None-Thread Safe),可從phpinfo的PHP Extension Build這一項得知。 下載之後將dll放至PHP的ext目錄下,並在php.ini加入Xdebug相關設定(參考設定如下),設定完成後重新啟動Apache服務。 [XDebug] ;指定dll所在位置 zend_extension="E:\AppServ\php7\ext\php_xdebug-2.9.2-7.3-vc15-x86_64.dll" xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.collect_vars = On xdebug.collect_return = On xdebug.collect_params = On xdebug.profiler_enable=1 ;視情況自行調整路徑 xdebug.profiler_output_dir="E:\AppServ\www\xdebug" xdebug.remote_log="E:\AppServ\www\xdebug\xdebug.log" xdebug.profiler_output_dir ="E:\AppServ\www\xdebug" 安裝Notepad++的外掛工具 DBGP Plugin 下載後將dbgpPlugin.dll複製到Notepad++的 plugins資料內...