Lolly URL Screenshot 擴充功能讓網頁版應用程式可以從你的瀏覽器內部,擷取任何網頁的截圖。沒有它,擷取一個網址就需要桌面應用程式 - 瀏覽器頁面無法自行讀取另一個網站的像素。這個擴充功能可以做到,使用的是桌面應用程式所用的同一套擷取機制。
它還以同樣的方式執行另外兩項工作。貼到圖片欄位中的網址可以變成該頁面的截圖(擷取此頁面),擴充功能也可以讀取你指定的單一頁面,讓「品牌工作室」能從一個正式上線的網站中擷取品牌資訊。每一個請求都要等你在擴充功能中核准。
它可在以 Chromium 為基礎的瀏覽器上執行:Chrome、Edge、Brave、Arc、Opera - Chrome 111 以上版本。
在安裝之前,URL Screenshot 仍會照常開啟,讓你可以構圖一張截圖,而工具控制項頂端會有一則提示,說明缺少了什麼。
signed by Lollyvector SVG4 paths~2.4k nodes4 groups30 KB自己驗證取得已簽署檔案
signed by Lollyvector SVG4 paths~2.4k nodes4 groups30 KB自己驗證取得已簽署檔案
在等待期間,每個控制項都是可用的:目標網址、捲動深度、穩定延遲、裁切內縮與重新上色。只有擷取本身需要主機。
signed by Lollyvector SVG31 paths~1.7k nodes38 groups30 KB自己驗證取得已簽署檔案
signed by Lollyvector SVG31 paths~1.7k nodes38 groups30 KB自己驗證取得已簽署檔案
安裝
從 Chrome 線上應用程式商店
即將推出。一旦發佈,你只要一鍵安裝,然後重新載入 Lolly 即可。
自行載入(開發者適用)
這個擴充功能位於程式庫的 shells/chrome-extension/。該資料夾是正式版建置,只能搭配 https://lolly.tools 上的 Lolly 使用。
- 開啟
chrome://extensions。 - 開啟開發人員模式(右上角)。
- 點擊載入未封裝項目,選擇
shells/chrome-extension/資料夾。 - 重新載入 Lolly - URL Screenshot 現在就能在瀏覽器中運作。
如果要連接本機開發伺服器,請執行 pnpm run pack:chrome-extension:dev,改為載入 dist/chrome-extension-dev。該套件也接受 http://localhost:5173,其名稱中帶有 Development。
運作方式
- 一段小腳本會告訴 Lolly 擴充功能已存在,因此 URL Screenshot 不需要進一步設定就能儲存擷取結果。
- 每個請求都由你核准。當 Lolly 發出請求時,擴充功能會開啟它自己的 Approve page request 視窗,顯示發出請求的網站、它要的是截圖還是頁面內容,以及頁面網址。在你按下 Approve once 之前,不會讀取任何內容。按下 Cancel 或關閉該視窗,請求即告結束。
- 你第一次核准某個網站的請求時,Chrome 還會詢問擴充功能是否可以存取該網站。你允許之後,Chrome 會保留這項存取權,但之後的每個請求仍然需要各自的 Approve once。
- 一次核准只對應一個請求,並在 30 秒後失效。同一時間只能有一個請求在等待或執行,已核准的請求會在 55 秒後停止。如果 Lolly 頁面關閉或跳轉,或目標頁面轉到另一個網站,請求就會被取消。
- 你核准之後,擴充功能會在背景分頁開啟目標頁面,透過 DevTools Protocol 擷取畫面(與桌面應用程式所用的同一個
Page.captureScreenshot),接著關閉分頁,並將影像回傳給發出請求的那個 Lolly 分頁。 - 它完全在你的瀏覽器、你的網路上執行 - 所以擷取
localhost或內部網站也能正常運作。頁面是用你的瀏覽器工作階段載入的,所以你已登入的頁面可能會在結果中顯示私人資訊。擷取的內容本身絕不會上傳到任何地方,唯一的網路流量,就是你自己的瀏覽器載入你要求截圖的頁面。
在擷取進行時,你可能會在暫時分頁上短暫看到一則「……已開始偵錯這個瀏覽器」的橫幅。那是 DevTools Protocol 在運作;截圖完成後它就會自動消失。
為 Brand Studio 讀取一個網站
Brand Studio 的網站來源,能從你已有的網站開始建立品牌。在 Chromium 上,讀取工作由擴充功能完成;在桌面應用程式上,則由原生擷取執行相同工作;在沒有擴充功能的一般瀏覽器上,這個項目根本不會出現。
按下之後會發生什麼事:
- 一個網址,一個頁面。你核准之後,擴充功能會在同一種背景分頁開啟它,讀取算繪後的標記、樣式表文字,以及少數幾張圖示與標誌影像,然後關閉分頁。它不會跟隨連結,也不會爬取整個網站。
- 託管在別處的樣式表(CDN、字型服務)也會一併擷取,因為頁面的色彩與字體就存在其中。跨來源的請求不會帶上你的 cookie;同源請求則會使用,和頁面本身的行為一致。
- 一切都有上限 - 樣式表、圖片與位元組數都有數量限制 - 這樣即使是惡意或半損壞的頁面,回傳的也只會是部分素材,而不會卡住。
- 位元組會直接回傳給發出請求的 Lolly 分頁。解析成色彩、字體與標誌的工作在你的裝置上完成;不會上傳任何東西。
貼上網址只是把欄位填好而已。在你開始讀取並按下 Approve once 之前,不會讀取任何東西。
安裝之後
重新載入 Lolly 分頁。「取得擴充功能」的提示會消失,URL Screenshot(在「工具程式」之下)可以把擷取結果儲存為檔案,該工具也會在批次模式中可供使用。
權限
它的 manifest.json 宣告了四項權限,外加它逐一網站申請的網站存取權:
debugger- 透過 DevTools Protocol 操控背景分頁。這就是用來擷取截圖的機制。tabs- 開啟暫時的背景分頁並在之後將其關閉,同時檢查自你核准請求以來,Lolly 頁面和目標頁面是否都沒有跳轉。scripting- 在你指定的網站中執行單頁讀取器,供 Brand Studio 的網站來源使用。storage- 只在 session storage 中記下它所開啟分頁的 id,這樣即使瀏覽器在讀取途中暫停了擴充功能,該分頁仍會被關閉。下次啟動時就會清除;不會儲存任何關於你的資訊。optional_host_permissions: ["http:///", "https:///"]- 網站存取權,安裝時不會授予。當你按下 Approve once 時,擴充功能會向 Chrome 申請該請求所涉的那一個網站的存取權,Chrome 會在每個網站第一次時詢問你。
它只讀取你核准的那一個頁面,不會讀取或傳輸你的瀏覽資料 - 不會上傳任何東西到任何地方。
這份 manifest 也設定了 minimum_chrome_version: 111。目前版本為 0.4.0。
疑難排解
- 仍然看到「取得擴充功能」? 重新載入 Lolly 分頁 - 偵測是在頁面載入時進行的。
- 在這個網站上沒有反應? 這個擴充功能只在
https://lolly.tools上運作,開發套件中還包括http://localhost:5173。其他來源(例如自行代管的 Lolly 副本)需要另外建置一個擴充功能,並在manifest.json和policy.js中都列出該來源。只編輯 manifest 已經不再有效。 - 擷取失敗? 確認網址可以連線,並以
http://或https://開頭。有些頁面會主動封鎖自動化擷取。如果你按了 Cancel、關閉了核准視窗,或等待超過 30 秒,請重新開始擷取。