
語言 🇹🇼 繁體中文
背景
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 自行撰寫擴充功能。您可以在下列端點查看這些擴充功能的未壓縮程式碼:
Dark Mode
當偵測到頁面為「深色」時,深色模式擴充功能會被有條件地載入。此擴充功能僅向評論元件加入一些 CSS。如此一來,當不需要時我們就不用載入深色模式的 CSS。
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderation
當目前使用者為版主時,我們會使用審核擴充功能。
這是一個很好的範例,示範如何新增基於點擊的事件監聽器、發出 API 請求,以及新增項目到評論選單和評論區域。
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live Chat
即時聊天擴充功能(搭配其他設定與樣式)會將評論元件轉變成即時聊天組件。
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
擴充套件物件 
擴充套件物件由下列定義組成:
Run 
擴充套件 API 
與 Extension 的互動很簡單,只要定義我們想呼叫的函式參考。
延續先前的範例,假設我們想在每個評論的頂部加入 HTML:
Run 
每當你返回這類 HTML 時,它會透過 DOM 差異比對演算法合併到 UI 中。
手動觸發評論的重新渲染
我們可以等到初始頁面載入完成,並透過呼叫 reRenderComment 手動重新渲染評論:
Run 