無需編輯原始程式碼即可自訂 Collabora CODE 工具列
使用緊湊模式或選項卡模式和 WOPI PostMessage 控制項簡化 Collabora CODE,安全地隱藏選定的按鈕、命令和選項卡。
為了簡化 Collabora 線上開發版 (CODE) 編輯器,請選擇「緊湊」或「選項卡式」佈局,然後使用 WOPI 主機的 PostMessage 整合來隱藏單一命令、按鈕或筆記本列標籤。折疊工具列是一種便捷的視圖變更方式;如果您希望每次編輯工作階段都使用一致的介面,則透過主機隱藏控制項會更為合適。
CODE 提供兩種佈局:一種是帶有傳統選單和工具列的緊湊佈局,另一種是帶有筆記本列的選項卡式佈局。首先,請確定您的使用者看到的是哪種佈局:工具列按鈕 ID 和筆記本列標籤 ID 不可互換。 Collabora 的支持指南指出,舊名稱已棄用classic,並從 21.11 系列開始使用新名稱。請參閱Collabora 介面配置指南。notebookbarcompacttabbed


僅當大多數使用者都應使用相同的佈局時才更改伺服器預設設定。在自架安裝中,該user_interface.mode設定coolwsd.xml接受 `<your-name> ` default、compact`<your-name>` 或 `<your-name> tabbed`。請先備份配置,然後再變更現有mode值,而不是再新增另一個 XML 元素:
<user_interface>
<mode>tabbed</mode>
</user_interface>這段簡化的 XML 程式碼僅用於演示設置,並非取代完整的配置部分。請透過部署的常規配置和服務重新啟動流程套用更改,然後重新開啟文件。容器部署可以傳遞--o:user_interface.mode=tabbed其現有的程式碼啟動覆蓋設定。嵌入式應用程式也可以透過其 WOPI 值影響啟動模式ui_defaults。當伺服器使用 時,主機的偏好設定可能很重要default,因此不要假設伺服器端的編輯會覆蓋整合特定的選擇。
為了在閱讀時獲得更大的空間,請點擊目前選取的標籤頁即可折疊筆記本欄;再次點擊即可展開。 Collabora 在其官方筆記本欄介紹中描述了這種行為。 PostMessage API 文件中也Collapse_Notebookbar提供了隱藏筆記本列按鈕或緊湊按鈕條的方法。這是一種可逆的顯示狀態,並非永久的管理員策略。
為了更精細地控制,請選擇與元素相符的 PostMessage 操作。以下映射關係列於Collabora Online SDK 手冊:
| 需要隱藏什麼 | PostMessage 操作 | ID格式 |
|---|---|---|
| 一個工具列按鈕 | Hide_Button | 按鈕 ID |
| 跨選單和工具列的命令 | Hide_Command | UNO 指令,例如.uno:ThemeDialog |
| 選項卡式佈局中的一個選項卡 | Hide_NotebookTab | 標籤頁 ID,例如Help |
| 簡潔菜單項 | Hide_Menu_Item | 選單項目 ID |
自24.04.11.1 版本起,文件中已對選項卡特定操作進行了說明。 SDK 也指出, 24.04.11.2Hide_Command版本擴充了上下文選單的功能。在使用任何一種功能之前,請檢查您已部署的 CODE 版本。
這些操作由嵌入在 iframe 中的 CODE 的應用程式發送,而不是在 CODE 設定對話框中輸入。您需要控制該主機整合、一個有效的 WOPICheckFileInfo回應以及PostMessageOrigin與您的主機 Web 應用程式來源相符的值。如果您使用的是打包的 Nextcloud 或 ownCloud 集成,它可能不會公開任意自訂的 PostMessage 鉤子;在這種情況下,請在集成本身中進行更改或使用其支援的設定。
在主機頁面註冊訊息監聽器。驗證發送視窗和來源。當 CODE 報告App_LoadingStatus錯誤時Status: Document_Loaded,在發送自訂訊息之前發送此訊息。如果沒有此握手,CODE 可能會忽略主機指令-此錯誤已在Collabora 問題 #13224Host_PostmessageReady中解釋。
以下主機端 JavaScript 程式碼假設您的頁面已有一個 ID 為 `<iframe_id>` 的 iframe collabora-frame。請將其設定editorOrigin為服務您的程式碼編輯器的確切 HTTPS 來源,而不是 WOPI 儲存伺服器的來源。在您的實際應用程式中,在文件初始化之前註冊監聽器:
const frame = document.getElementById('collabora-frame');
const editorOrigin = 'https://office.example.com';
function sendToCode(MessageId, Values = {}) {
frame.contentWindow.postMessage(JSON.stringify({
MessageId, SendTime: Date.now(), Values
}), editorOrigin);
}
window.addEventListener('message', (event) => {
if (event.source !== frame.contentWindow ||
event.origin !== editorOrigin) return;
let message;
try {
message = typeof event.data === 'string'
? JSON.parse(event.data) : event.data;
} catch { return; }
if (message?.MessageId !== 'App_LoadingStatus' ||
message?.Values?.Status !== 'Document_Loaded') return;
sendToCode('Host_PostmessageReady');
sendToCode('Hide_NotebookTab', { id: 'Help' });
sendToCode('Hide_Command', { id: '.uno:ThemeDialog' });
});
這裡Help是筆記本列選項卡目標,而 ` .uno:ThemeDialog<command>` 標識的是 LibreOffice UNO 指令。 Collabora 開發人員在其關於隱藏 UNO 元素的指南中專門描述了後一個 ID 。若要隱藏特定的 Compact 工具列按鈕,請將操作替換為 `<command>`Hide_Button並提供已驗證的按鈕 ID。不要根據可見的標題猜測 ID;請查看已安裝的 CODE 原始碼或 SDK 的工具列 ID 指南。
在修改 CODE 檔案之前,請檢查瀏覽器控制台和網路活動。最常見的原因是Host_PostmessageReady握手失敗、連接不匹配PostMessageOrigin、在連接失敗前發送訊息Document_Loaded,或在編輯器處於標籤頁模式時選擇「緊湊」選單項目。重新開啟檔案會啟動一個新的會話,因此每次都需要套用隱藏訊息的設定。
版本相關的缺陷也存在。例如,Collabora 問題 #15910描述了 CODE 25.04.9.4 版本中的一個Hide_NotebookTabJavaScript 錯誤,該錯誤於 2026 年 6 月報告;該問題已被標記為已關閉,但這並不能說明哪些已部署的版本包含了修復程序。如果您遇到報告的錯誤,請檢查您的特定版本及其發行說明。
最後,隱藏並不等於存取控制。隱藏列印或下載按鈕可能仍會留下等效的 API 或其他存取路徑。如果目標是禁止這些操作,請使用文件中記錄的 WOPIDisablePrint或DisableExport標誌,並根據需要強制執行儲存權限,而不是依賴隱藏Hide_Button或隱藏按鈕Hide_Command。
以預期的佈局開啟一個新文件。確認Help在選項卡模式下選項卡已消失,且先前可見的「主題」命令也已不再顯示。然後編輯並保存一個測試文檔,以確認正常的編輯功能仍然有效。使用另一種文件類型重複此檢查,並在重新載入頁面後再次檢查,因為主機需要重新套用會話特定的隱藏命令。

使用緊湊模式或選項卡模式和 WOPI PostMessage 控制項簡化 Collabora CODE,安全地隱藏選定的按鈕、命令和選項卡。
讓 Nginx 負責 Collabora CODE 容器的 HTTPS,正確轉送編輯 WebSocket,並在不暴露連接埠 9980 的情況下驗證公共端點。
解決 Collabora Online 中行動瀏覽器鍵盤遮擋文字的問題,提供快速解決方法,並對瀏覽器、嵌入式 WebView 和宿主頁面進行單獨檢查。
為 ONLYOFFICE 連結、會議室成員或 Docs API 會話設定列印和下載限制,然後從收件者帳戶驗證限制。
在 ONLYOFFICE Workspace 中設定備份目標、計畫、郵件覆蓋範圍和保留期限,然後驗證檔案是否已準備好進行復原。
啟動企業版 Docker Compose 堆疊,持久化其授權和數據,安全地配置 JWT,並確認編輯器已準備好整合。
使用 ONLYOFFICE JavaScript 巨集,透過安全的審閱工作流程,從指定的電子表格區域中刪除非列印字元並移除多餘的空格。
將入口網站資料從預設磁碟移至支援的雲端儲存供應商,或透過變更主機磁碟區來對應安全地遷移 Docker 資料。
確定文件伺服器使用的是 Linux 軟體包還是 Docker,僅刪除其元件,並檢查剩餘數據,避免誤刪共享服務。
追蹤協作編輯速度慢的原因,例如 Docker 資源壓力、代理連接或文件加載,然後選擇與您的測量結果相符的修復方案。