關於 Firefox 複製網址列連結貼上文本編輯器沒有網頁 Title 的解決方法
最近從 Edge 換回 Firefox,用沒幾天就被一個小地方卡住。
在 Edge 上,網址列複製網址、到 AFFiNE 筆記裡貼上,出來的是一條帶網頁標題的超連結,標題直接寫在筆記裡,之後回頭看一眼就知道那是什麼。Firefox 沒有這個行為,貼上去就是一長串網址:

筆記一多,這些網址就是一坨要一條條點開才知道是什麼的東西,關鍵字也搜不到。
先去看官方有沒有打算做。Mozilla Connect 上有這則提案:When copy / pasting URL include Meta Title of the ... - Mozilla Connect,截至寫這篇為止沒看到後續進度。
那就找插件。試了兩個:
URL2Clipboard 功能最接近我要的,而且它有個細節做得很好:Ctrl + V 貼出來是帶超連結的標題,Ctrl + Shift + V(貼上為純文字)則只有標題文字,不會把網址一起吐出來。兩種貼上各給各的東西,互不干擾。可惜每次複製都要多按幾下選格式,日常用起來不夠流暢。
Copy Tab Title and Url 操作是簡單了,但它只丟純文字出來,貼到 AFFiNE 還是沒有超連結效果,等於沒解決我原本的問題。
兩個都差一點,只好自己想辦法。
翻到 reddit 這兩篇討論:
Bookmarklet does not work : r/firefox
裡面提到 Firefox 的書籤網址可以填 javascript: 開頭的程式碼,點下去就在當前頁面執行(也就是 bookmarklet)。那方向就清楚了:不用等 Firefox 改,把「複製成超連結」這件事寫成一段 JavaScript 塞進書籤就好。

Ctrl + Shift + O 打開書籤管理,新增書籤,名字隨便取,在網址欄位貼上這段:
javascript:(function(){const t=document.title,u=window.location.href,html=`<a href="${u}">${t}</a>`,e=function(e){e.clipboardData.setData("text/html",html),e.clipboardData.setData("text/plain",u),e.preventDefault()};document.addEventListener("copy",e),document.execCommand("copy"),document.removeEventListener("copy",e);})();做的事情是攔截一次 copy 事件,往剪貼簿的兩個格子各寫各的:text/html 放 標籤,text/plain 放乾淨的網址。剪貼簿本來就能同時放多種格式,貼上時由接收端決定讀哪一格 —— AFFiNE、Notion 這類支援 rich paste 的編輯器讀 text/html,純文字貼上讀 text/plain。等於用手寫的方式湊出 URL2Clipboard 那個行為。
這裡用的document.execCommand("copy")其實已經被 MDN 標為 Deprecated 且 Non-standard,文件也直說「To access the clipboard, the newer Clipboard API is recommended overexecCommand()」。
沿用它純粹是因為 reddit 那兩篇的寫法就是這樣,而且它是同步的、配上 copy 事件可以一次寫進兩種格式,改起來最省事。要寫得更合乎現況的話該換成 Clipboard API 的write()搭ClipboardItem,一樣能同時放text/html和text/plain,只是變成非同步、程式碼會長一點。
存好之後,在想複製的頁面點一下書籤列的那顆按鈕,剪貼簿就同時有兩份了。Ctrl + Shift + V 貼到純文字編輯器,拿到的是乾淨的網址:
https://www.ruanyifeng.com/blog/2026/06/weekly-issue-400.htmlCtrl + V 貼到 AFFiNE,則是直接變成帶標題的超連結:

如果不想動滑鼠,書籤還可以設關鍵字。在書籤的「關鍵字」欄位填一個好按的短字(例如用 cc),之後 Ctrl + L 跳到網址列、輸入 cc、Enter,一樣會執行那段程式碼。

現在複製連結變成 Ctrl + L → cc → Enter,比原本在 Edge 上還順一點,算是意外收穫。