01
JS 書籤入門
先懂 JS 能替你做什麼,再把常做的操作變成按鈕


五泰線上分享|2026.09.29(二)10:00~11:00
從你正在看的住通、永慶頁面出發,用 AI 幫自己做一個小工具。準備電腦,一起試。
今天的路線
01
先懂 JS 能替你做什麼,再把常做的操作變成按鈕
02
裝一個書籤自己按,再請 AI 幫你寫一個
03
整理房源欄位,延伸到 Google Sheet 入表
04
認識外掛與權限,再做一個兩站外掛
開場|現在的做法
尚未查詢
| 名稱 | 地址 | 總價 | 坪數 | 格局 | 樓層 |
|---|---|---|---|---|---|
| 示意房源 A | 泰山區○○路 | 1,880 | 28.5 | 3 房 | 7 樓 |
| 示意房源 B | 泰山區○○街 | 2,120 | 32.1 | 3 房 | 12 樓 |
| 示意房源 C | 泰山區○○路 | 2,350 | 35.8 | 3 房 | 5 樓 |
| 示意房源 D | 泰山區○○街 | 2,480 | 38.2 | 3 房 | 9 樓 |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | 名稱 | 地址 | 總價 | 坪數 | 格局 | 樓層 |
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 |
這一頁 20 筆 × 6 欄 = 120 次複製貼上
剛剛才做了 12 次,還剩 108 次。這還只是第 1 頁。
設定條件
0項
已複製貼上
0次
這一頁還剩
120次
開場觀念
住通要登入,永慶是公開網頁。兩站走的是同一條路:
1
先用網站原本的查詢條件,找到要看的案件。
2
書籤或外掛,對目前頁面做一件固定的事。
3
看筆數與欄位,挑一筆回原頁對價格、坪數。
4
核對過才入表,保留來源網址與擷取時間。
工具只處理畫面上已經顯示的資料,不是整個資料庫。
01|JS 書籤入門
空白頁點左邊的開關,一層一層加上去
共 4 筆
今天我們只動 JS 這一層。
01|JS 書籤入門
你在網頁上手動做的事,填欄位、按按鈕、讀畫面上的字,它都能照著做。
三行 JS示意
共 4 筆
這個網頁顯示
01|JS 書籤入門
總價、地區一次填好
條件填好,替你按「查詢」
列表上的房源整理成表格欄位
總價超過預算的列,標成黃色
廣告、推薦區先收起來
複製後貼進試算表,或下載成檔案
今天會用到
01|JS 書籤入門|教學示意
某網站首頁
你現在在首頁。
查詢頁
總價:空白
結果列表:全部
查詢頁(已登入)
總價:空白
結果列表:全部
查詢頁(已登入)
總價:1,500~2,500 萬
結果列表:已依總價更新(示意)
按鈕上的字,讓自己知道按下去做什麼。
以 javascript: 開頭,少了開頭就不會執行。
先登入、打開對的頁面,再按。登入身分與頁面結構會影響結果。
02|住通快捷查詢
永慶房屋|公開搜尋頁
https://buy.yungching.com.tw/list/新北市-泰山區地區_c/1500-2500總價(萬)_price
https://buy.yungching.com.tw/list/新北市-新莊區地區_c/2500-4000總價(萬)_price
條件在網址裡永慶
改網址就換條件。存一個普通書籤就夠。
條件不在網址裡住通
按了查詢,網址不變。要 JS 書籤幫你填欄位、按查詢。
02|住通快捷查詢
A
打開安裝頁,按住按鈕拖到書籤列放開。
B
名稱自己取,開頭的 javascript: 要留著。
書籤裡這段程式在做什麼|住通「買賣 1500~2500 萬」真實程式節錄看過就好,不用記
javascript:void (function houseflowShortcut(mode, …) {書籤從這裡開始 if (location.hostname !== 'app.houseflow.tw' …) {不在查詢頁, if (window.confirm('這一頁不是住通的「委託物件查詢」。要帶你過去嗎?…')) …先問要不要帶你過去 const low = one('input[name="QueryConditionModel.EntrustPriceTotalS"]');找總價下限欄 const high = one('input[name="QueryConditionModel.EntrustPriceTotalE"]');找總價上限欄 const button = one('button[name="SubmitBtn"]');找查詢按鈕 … button.click();按查詢02|住通快捷查詢
點書籤=填入總價,再按一次查詢。其他篩選保留原樣。

| 書籤條件 | 結果總數 |
|---|---|
| 總價 1,500~2,500 萬 | 203 |
| 總價 2,500~4,000 萬 | 61 |
| 清除總價 | 539 |
9/28 實測|依當時其他篩選而定,不代表全部庫存
02|練習一
書籤列沒出現,按 Ctrl+Shift+B(Mac 是 ⌘+Shift+B)。拖不動,就按「開啟書籤原文」全部複製,在書籤列空白處按右鍵 →「新增網頁」,貼進網址欄。
在別的頁面按,會先問要不要帶你到查詢頁;到了再按一次。
按下去,應該看到
沒反應,先查這兩件
02|住通快捷查詢
三個範例都是新北市、售、總價 1,500~2,500 萬。

按地區書籤:原本加的地址條件(其他區、街道、巷弄)
會全部清掉,只留這一區
| 地區 | 結果總數 | 核對範圍 |
|---|---|---|
| 泰山區 | 50 | 當頁 20 列地址皆為泰山區 |
| 新莊區 | 1 | 當頁 1 列地址為新莊區 |
| 林口區 | 0 | 查無結果,如實保留 |
9/28 實測|零筆先檢查其他篩選,不當作程式錯誤
02|練習二
兩個都沒有:先看講者做一次,會後照這頁做。
拿到一段 javascript: 開頭的程式。
在書籤列空白處按右鍵 →「新增網頁」。
總價、地區照你的條件填好,自動查詢一次,就成功了。
提示詞|【 】裡可以換成你的條件
你看得到我正在看的住通「委託物件查詢」頁。 請幫我做一個 JS 書籤: 總價【2000~3000】萬、地區【新莊區】, 填好後按查詢。 照畫面上真的欄位寫,不要猜。 只回一段 javascript: 開頭的程式, 我要貼進書籤的網址欄。
沒反應,先查
練習守則
AI 看得到的畫面會送到 AI 服務,讓它看查詢頁就好,不要打開有屋主或客戶資料的頁面。AI 寫的書籤,先試過再用。
03|房源整理

203筆
系統查詢結果總數
20筆
這一頁實際載入
20筆
工具整理,不是全部匯出
2,188萬
抽查原頁 29.43 坪,一致
03|房源整理

9/28 實測|筆數依網站當時內容變化
03|房源整理

錯頁面
不是列表或詳細頁
未登入
住通要先登入
尚未載入
分頁外的結果不算
欄位本來就沒有
標「待確認」
網站沒提供
工具不會自己補數字
03|入表
預覽視窗按「複製 TSV」,就是把整張表複製起來;到 Google Sheet 空白分頁點第一格,按 Ctrl+V 貼上。

03|入表延伸|進階示範
跟手動版一樣,先篩選、再整理。
要用自己的 Google 帳號先設定一次,只有本人能用。會後照教學做,今天先看成果。
看成功筆數與範圍,查表核對,再重新整理。
已讀回一筆實際寫入:
1,666 萬/37.04 坪,12 欄一致

03|入表延伸|之後自己設定
Apps Script 是 Google 試算表內建的小程式:書籤把資料交給它,由它寫進你的 Sheet。
寫進哪張表、接收資料、權限設定,各一份。
照 AI 的說明把三份檔貼進去,儲存。
執行身分選「我」,誰可以存取選「只有我自己」。
核對是自己的帳號再允許;網址以 /exec 結尾,不是部署 ID。
在公開永慶頁按一次,回 Sheet 逐欄核對。

結果不確定先查表,不要重按
只接公開永慶,住通資料不上雲端
04|瀏覽器外掛
JS 書籤
瀏覽器外掛
放在哪裡
怎麼裝
從安裝頁拖到書籤列
擴充功能頁載入資料夾,再釘選
怎麼更新
刪掉舊書籤,裝新的
改完檔案,按「重新載入」
能多做什麼
按一下,跑一段程式
今天的外掛只做工具列按鈕,右邊三項需要時再請 AI 加。
04|瀏覽器外掛
manifest.json
身分證+說明書
外掛叫什麼、第幾版、要哪些權限、工具列上有一顆按鈕。
background.js
總機
只做一件事:聽到你按工具列圖示,就把 core.js 送進目前這一頁。
core.js
進到頁面做事的人
讀房源、跳出預覽、產生表格,讓你複製或下載。
04|練習三
例如住通填總價再查詢,永慶把低價物件標黃色。
用內建瀏覽器打開這兩個網站,住通先登入。
做好會得到一個外掛資料夾,裡面看得到 manifest.json。
提示詞|【 】裡可以換成你的網站和動作
請在這個資料夾做一個 Chrome 外掛。 按工具列圖示時,先看目前在哪個網站, 再做那個網站的事: 住通:【總價 2000~3000 萬,填好後查詢】 永慶:【把總價低於 2000 萬的物件標黃色】 其他網站:只跳提示,不做事。 只在我按圖示時,才碰目前這一頁; 不要「一直能存取網站」的權限。 每個權限用一句白話說明為什麼需要。 照我打開的畫面上真的欄位寫,不要猜。
04|練習三
打錯進不去:點右上角 ⋮ → 擴充功能 → 管理擴充功能。
選 Codex App 做好的資料夾,裡面要看得到 manifest.json。
按下去,應該看到
沒反應,先查這三件
備案
公司電腦開不了「開發人員模式」:先看講者做一次,會後再做。
04|瀏覽器外掛
更新三步
示範外掛每按一次都用新版。
自己做的沒反應,重整房源頁再按。
交給 AI 的四樣東西
目前網址
錯誤訊息
實際輸出
一筆原頁資料
讓 AI 用這筆證明修好了
密碼、登入憑證、登入畫面
延伸|Jev
《快思慢想》把人的思考分成兩種。
系統一|快思考
一看客人臉色,就知道他不高興。
Jev 像這個:不寫字,只做快速判斷。
系統二|慢思考
算一筆貸款的月付。
ChatGPT 這類聊天 AI 比較像這個:會寫長文、會推理。
Jev 的答案一定落在你事先給的選項裡,還會附上它有多少把握。
官方文件TypeSafe 2026-09-15 發表,搶先體驗|「系統一」的名稱取自 Kahneman《快思慢想》
延伸|Jev|速度對比
虛構客人訊息:我上週在網站問過那間兩房有沒有車位,到現在都沒人回,這已經是第三次問了,可以請真人直接打給我嗎?
Jev
完成
0.23 秒
{ "要真人回電?": {"type": "noul", "noul": 0.98}, "抱怨等太久?": {"type": "noul", "noul": 0.97}, "想放棄不買?": {"type": "noul", "noul": 0.16}, "交給誰?": {"type": "choice", "choice": "物件資訊", "confidence": 0.9, "probabilities": {"其他": 0.07, "看屋預約": 0.0, "物件資訊": 0.93, "價格議價": 0.0}}, "想做什麼?": {"type": "choice", "choice": "買房", "confidence": 0.79, "probabilities": {"租屋": 0.04, "其他": 0.11, "賣房": 0.0, "買房": 0.85}}, "語氣?": {"type": "choice", "choice": "不滿", "confidence": 0.97, "probabilities": {"不滿": 0.97, "普通": 0.02, "客氣": 0.01}}, "多不耐煩?": {"type": "score", "score": 1.77, "confidence": 0.66, "legend": {"0": "沒有", "1": "有點", "2": "非常"}, "probabilities": {"0": 0.0, "1": 0.23, "2": 0.77}}, "多急?": {"type": "score", "score": 1.23, "confidence": 0.6, "legend": {"0": "不急", "1": "這幾天內", "2": "今天就要"}, "probabilities": {"0": 0.02, "1": 0.73, "2": 0.25}}, "購買意願?": {"type": "score", "score": 1.2, "confidence": 0.68, "legend": {"0": "沒興趣", "1": "還在考慮", "2": "準備出價"}, "probabilities": {"0": 0.01, "1": 0.78, "2": 0.21}}}
LLM
完成
2.14 秒
1. 是,客人明確要求真人直接打電話回覆。
2. 是,客人在抱怨等待很久且多次詢問都沒人回覆。
3. 不是,客人沒有表示要放棄或不買。
4. 應交給物件資訊相關人員處理。
5. 客人想買房。
6. 客人的語氣是不滿。
7. 客人非常不耐煩。
8. 事情屬於今天就要處理的急件。
9. 客人的購買意願屬於還在考慮。
Jev
LLM
這次差 9 倍
放慢 3 倍播放兩邊同時送出,秒數與長條是實際時間|訊息是虛構的
延伸|Jev|是非(Noul)
收到一封信虛構
寄件者屋主
主旨委託的事
王經理您好:我跟家人討論過了,房子先不賣了,這個月底委託到期就不續約,謝謝你這段時間的幫忙。
問 Jev
屋主是不是決定不續委託?
只回一個數字:
是「是」的機率
Jev 回
0.98
很接近 1,就是「是」
程式接手
超過多少算「是」由我們自己訂,例如 0.8 以上,就提醒業務聯絡屋主。
Jev 實際回答信是虛構的
延伸|Jev|單選(Choice)
收到一封信虛構
寄件者網站留言
主旨想請你們幫忙
你好,我家在泰山的公寓想請你們幫忙賣,屋齡大概 30 年,可以先約時間估價嗎?
問 Jev
這封信的客人想做什麼?
Jev 回
買房0.00
租屋0.00
賣房1.00
其他0.00
挑中賣房|把握度 1.00
記一件事
選項要留「其他」,不然碰到都不像的信,它會被迫硬選。把握度低的,交給人看。
Jev 實際回答信是虛構的
延伸|Jev|打分(Score)
收到一封信虛構
寄件者看屋的客人
主旨昨天看屋
昨天看的那間整體很喜歡,採光也好,只是總價比預算高一點,我們再跟家人討論,下週回覆你。
問 Jev
客人的購買意願有多高?
Jev 回
1.01
落在「還在考慮」
把握度 0.98
記一件事
分數可以落在兩級中間,例如下一頁的 1.6。把握度低的,交給人看。
Jev 實際回答信是虛構的
延伸|Jev|客服案例
三則虛構的客人訊息,每則一次問三題。
| Jev 判斷 | 程式決定 | |||
|---|---|---|---|---|
| 客人訊息(虛構) | 交給誰 | 多不耐煩(0~2) | 要找真人(0~1) | 怎麼做 |
| 我上週在網站問過那間兩房有沒有車位,到現在都沒人回,這已經是第三次問了,可以請真人直接打給我嗎? | 物件資訊機率 0.99 | 1.6把握度 0.41,偏低 | 0.98 | 馬上通知業務回電 |
| 請問這間總價還有議價空間嗎?我們預算大概差一百萬。 | 價格議價機率 1.00 | 0.06 | 0.11 | 分給議價窗口 |
| 謝謝,你們昨天傳的屋況照片我收到了。 | 其他機率 0.99 | 0.02 | 0.08 | 只記錄,不打擾人 |
規則由我們自己訂
要找真人超過 0.8,或不耐煩超過 1.5:馬上通知業務本人回電。其他照分類分給窗口。把握度低的,交給人判斷。
Jev 實際回答每則回應 0.32~0.57 秒
延伸|Jev|案例
跟房仲工作連得上的三個
例子取自作者自己的介紹,我們沒有測過。
收尾
1
練習裝好的住通書籤、請 AI 寫的書籤,或自己做的外掛。
2
說得出讀了哪個範圍,核對過一筆原頁。
3
在群組留言,下一次一起拆。