Lolly URL Screenshot 擴充功能讓網頁版應用程式可以從你的瀏覽器內部,擷取任何網頁的截圖。沒有它,擷取一個網址就需要桌面應用程式 - 瀏覽器頁面無法自行讀取另一個網站的像素。這個擴充功能可以做到,使用的是桌面應用程式所用的同一套擷取機制。
它還以同樣的方式執行另一項工作:讀取你指定的單一頁面,讓「品牌工作室」能從一個正式上線的網站中擷取品牌資訊。以下會說明這兩者。
它可在以 Chromium 為基礎的瀏覽器上執行:Chrome、Edge、Brave、Arc、Opera - Chrome 111 以上版本。
在安裝之前,URL Screenshot 仍會照常開啟,讓你可以構圖一張截圖,而工具控制項頂端會有一則提示,說明缺少了什麼。
signed by Lollyvector SVG自己驗證Get the signed file4 paths~2.4k nodes4 groups29 KB
signed by Lollyvector SVG自己驗證Get the signed file4 paths~2.4k nodes4 groups29 KB
在等待期間,每個控制項都是可用的:目標網址、捲動深度、穩定延遲、裁切內縮與重新上色。只有擷取本身需要主機。
signed by Lollyvector SVG自己驗證Get the signed file52 paths~3.6k nodes158 groups1 image62 KB
signed by Lollyvector SVG自己驗證Get the signed file52 paths~3.6k nodes158 groups1 image62 KB
安裝
從 Chrome 線上應用程式商店
即將推出。一旦發佈,你只要一鍵安裝,然後重新載入 Lolly 即可。
自行載入(開發者適用)
這個擴充功能位於程式庫的 shells/chrome-extension/。
- 開啟
chrome://extensions。 - 開啟開發人員模式(右上角)。
- 點擊載入未封裝項目,選擇
shells/chrome-extension/資料夾。 - 重新載入 Lolly - URL Screenshot 現在就能在瀏覽器中運作。
運作方式
- 一段小腳本會告訴 Lolly 擴充功能已存在,因此 URL Screenshot 工具會自動啟用 - 不需要任何設定。
- 當你進行算繪時,擴充功能會在背景分頁開啟目標頁面,透過 DevTools Protocol 擷取畫面(與桌面應用程式所用的同一個
Page.captureScreenshot),接著關閉分頁並將影像回傳。 - 它完全在你的瀏覽器、你的網路上執行 - 所以擷取
localhost或內部網站也能正常運作。擷取的內容本身絕不會上傳到任何地方,唯一的網路流量,就是你自己的瀏覽器載入你要求截圖的頁面。
在擷取進行時,你可能會在暫時分頁上短暫看到一則「……已開始偵錯這個瀏覽器」的橫幅。那是 DevTools Protocol 在運作;截圖完成後它就會自動消失。
為 Brand Studio 讀取一個網站
Brand Studio 的網站來源,能從你已有的網站開始建立品牌。在 Chromium 上,讀取工作由擴充功能完成;在桌面應用程式上,則由原生擷取執行相同工作;在沒有擴充功能的一般瀏覽器上,這個項目根本不會出現。
按下之後會發生什麼事:
- 一個網址,一個頁面。擴充功能會在同一種背景分頁開啟它,讀取算繪後的標記、樣式表文字,以及少數幾張圖示與標誌影像,然後關閉分頁。它不會跟隨連結,也不會爬取整個網站。
- 託管在別處的樣式表與字型(CDN、字型服務)也會一併擷取,因為頁面的色彩與字體就存在其中。跨來源的請求不會帶上你的 cookie;同源請求則會使用,和頁面本身的行為一致。
- 一切都有上限 - 樣式表、圖片與位元組數都有數量限制 - 這樣即使是惡意或半損壞的頁面,回傳的也只會是部分素材,而不會卡住。
- 位元組會直接回傳給發出請求的 Lolly 分頁。解析成色彩、字體與標誌的工作在你的裝置上完成;不會上傳任何東西。
在你按下按鈕之前,不會讀取任何東西。貼上網址只是把欄位填好而已。
安裝之後
重新載入 Lolly 分頁。「取得擴充功能」的提示會消失,URL Screenshot 會出現在圖庫與批次模式中可供使用。
權限
它的 manifest.json 宣告了四項權限,外加主機存取權:
debugger- 透過 DevTools Protocol 操控背景分頁。這就是用來擷取截圖的機制。tabs- 開啟暫時的背景分頁,之後再將其關閉。scripting- 在你指定的網站中執行單頁讀取器,供 Brand Studio 的網站來源使用。storage- 只在 session storage 中記下它所開啟分頁的 id,這樣即使瀏覽器在讀取途中暫停了擴充功能,該分頁仍會被關閉。下次啟動時就會清除;不會儲存任何關於你的資訊。host_permissions: ["<all_urls>"]- 對所有網站的主機存取權,因為你可以將它指向任何你選擇的網址。Chrome 會在安裝時以「讀取並變更你在所有網站上的所有資料」這則廣泛的警告呈現這項權限。
儘管有這則警告,它實際上只讀取你要求它擷取或匯入的那一個頁面,不會讀取或傳輸你的瀏覽資料 - 不會上傳任何東西到任何地方。
這份 manifest 也設定了 minimum_chrome_version: 111。目前版本為 0.2.1。
疑難排解
- 仍然看到「取得擴充功能」? 重新載入 Lolly 分頁 - 偵測是在頁面載入時進行的。
- 在這個網站上沒有反應? 這個擴充功能只會在 Lolly 自己的來源上啟動。若是在其他網域執行自訂建置版本?把它加進擴充功能
manifest.json裡的content_scripts.matches。 - 擷取失敗? 確認網址可以連線,並以
http://或https://開頭。有些頁面會主動封鎖自動化擷取。