
語言 🇹🇼 繁體中文
背景
API
撰寫擴充套件
開發擴充功能
背景
FastComments 提供透過我們稱為擴充功能的腳本來擴充我們的核心功能的能力。
An Extension 可以向留言元件新增額外的標記、事件監聽器,並執行任意程式碼。
在這裡你會找到我們在生產環境中使用的擴充功能範例,以及如何撰寫擴充功能的文件。
擴充套件生命週期 
每個擴充功能的腳本會在評論元件開始抓取第一批評論並渲染 UI 之前被抓取並執行。
在初始載入時,下列資料會被標記到擴充功能物件上:
config- 一個指向config物件的參考。translations- 一個指向translations物件的參考。commentsById- 一個以 id 為索引的所有評論的參考。root- 一個指向根 DOM 節點的參考。
擴充功能應覆寫所需的函式,評論元件會在適當的時機呼叫它們。
定義擴充套件 
最小的擴充功能範例為:
Run 
為了本範例,將此儲存為 my-extension.js,並讓它可透過 https://example.com/my-extension.min.js 存取。
這個擴充功能本身不會執行任何動作,只有在載入時會取回由核心留言函式庫所建立的擴充物件。
此 Extension 物件為單例,且不會與其他擴充功能共用。
接下來,要載入我們的擴充功能,必須告知留言小工具。例如:
Run 
關於功能範例,請參閱下一節。
範例擴充套件 
在 FastComments,我們使用相同的 API 來撰寫自己的擴充功能。您可以在以下端點查看這些擴充功能的未壓縮程式碼:
深色模式
深色模式擴充功能會在偵測到「深色」頁面時有條件地載入。此擴充功能只是為留言小工具新增一些 CSS。這樣一來,我們就不需要在不需要時載入深色模式的 CSS。
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
審核
當目前使用者是審核員時,我們會使用審核擴充功能。
這是一個很好的範例,展示了如何新增基於點擊的事件監聽器、發送 API 請求,以及在留言選單和留言區域中新增內容。
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
即時聊天
即時聊天擴充功能(結合其他配置與樣式)可將留言小工具轉換為即時聊天元件。
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
擴充套件物件 
擴充功能物件由以下定義組成:
Run 
擴充套件 API 
與 Extension 的互動很簡單,只要定義我們想呼叫的函式參考。
延續先前的範例,假設我們想在每個評論的頂部加入 HTML:
Run 
每當你返回這類 HTML 時,它會透過 DOM 差異比對演算法合併到 UI 中。
手動觸發評論的重新渲染
我們可以等到初始頁面載入完成,並透過呼叫 reRenderComment 手動重新渲染評論:
Run 