在 kintone 的客製化開發中,我們經常需要根據使用者操作狀況,顯示自定義提示訊息或是確認視窗。過去若要達成這類效果,通常需要自行撰寫 HTML/CSS 或搭配外部函式庫,例如 SweetAlert2 、官方提供的 kintone UI Component 等套件,來自行建立元件。
不過從 2025 年 9 月與 10 月 的 API 更新開始,kintone 官方新增了數個方便的 UI 操作 API,
開發者現在可以直接呼叫內建函式,快速顯示對話框、提示訊息、或控制載入畫面,不需要再額外引入 kintone UI Component 即可使用。
新增的 API 包含以下四個:
| 功能 | API 名稱 | 說明 |
|---|---|---|
| 顯示確認對話框 | kintone.showConfirmDialog() |
以簡潔語法顯示「確定/取消」提示。 |
| 建立自訂對話框 | kintone.createDialog() |
顯示可放入自訂 HTML 元素的互動對話框。 |
| 顯示通知訊息 | kintone.showNotification() |
在畫面上方顯示提示訊息。 |
| 控制載入畫面 | kintone.showLoading() |
顯示或隱藏 kintone 風格的載入動畫。 |
這四個 API 能在 kintone 電腦版中適用客製化的頁面上使用,但須注意不支援以下頁面:
接下來就分別介紹這四個 API 的用途與基本使用方式。
kintone.showConfirmDialog()
kintone.showConfirmDialog(config) 可顯示一個確認對話框,讓使用者選擇是否執行某項操作,並可取得使用者的選擇結果。
kintone.showConfirmDialog(config)
| 參數名稱 | 型別 | 必填 | 說明 |
|---|---|---|---|
config |
Object | 是 | 對話框設定物件。 |
config.title |
String | 否 | 對話框標題文字。若省略則不顯示。 |
config.body |
String | 否 | 對話框的主要內容文字。可使用 \n, \r, \r\n 表示換行。若省略則不顯示。 |
config.showOkButton |
Boolean | 否 | 是否顯示「確定」按鈕。true: 顯示(預設)false: 不顯示。 |
config.okButtonText |
String | 否 | 「確定」按鈕上顯示的文字。若省略,會依登入者語系顯示「確定」。 |
config.showCancelButton |
Boolean | 否 | 是否顯示「取消」按鈕。true: 顯示false: 不顯示(預設)。 |
config.cancelButtonText |
String | 否 | 「取消」按鈕上顯示的文字。若省略,會依登入者語系顯示「取消」。 |
config.showCloseButton |
Boolean | 否 | 是否顯示右上角關閉按鈕。true: 顯示false: 不顯示(預設)。若設定為不顯示,則 Esc 鍵關閉視窗的功能也會被停用。 |
此函式會回傳一個 Promise 物件。
當使用者選擇任一操作後,Promise 會被解析(fulfilled),並傳回以下值:
| 回傳值 | 型別 | 說明 |
|---|---|---|
result |
String | 使用者選擇的操作:OK: 點擊「確定」按鈕。CANCEL: 點擊「取消」按鈕。CLOSE: 點擊「關閉」按鈕或按下 Esc 鍵。 |
// 基本的確認對話框
kintone.showConfirmDialog({
title: '刪除確認',
body: '是否確定要刪除此筆記錄?',
showOkButton: true,
showCancelButton: true,
okButtonText: '刪除',
cancelButtonText: '取消',
showCloseButton: true
}).then((result) => {
if (result === 'OK') {
console.log('執行刪除動作')
} else {
console.log('已取消刪除')
}
})
kintone.createDialog()
使用 kintone.createDialog(config) 可在頁面上建立可自訂內容的對話框。
與 kintone.showConfirmDialog() 不同,此 API 允許插入自訂 HTML 元素、輸入欄位、按鈕等互動元件,並可在關閉前執行驗證或額外邏輯。
kintone.createDialog(config)
| 參數名稱 | 型別 | 必填 | 說明 |
|---|---|---|---|
config |
Object | 是 | 對話框設定物件。 |
config.title |
String | 否 | 對話框標題。若省略則不顯示。 |
config.body |
Element | 否 | 對話框的主要內容元素(DOM Element)。若省略則不顯示。 |
config.showOkButton |
Boolean | 否 | 是否顯示「確定」按鈕。true: 顯示(預設)false: 不顯示。 |
config.okButtonText |
String | 否 | 「確定」按鈕上顯示的文字。若省略,會依登入者語系顯示「OK」。 |
config.showCancelButton |
Boolean | 否 | 是否顯示「取消」按鈕。true: 顯示false: 不顯示(預設)。 |
config.cancelButtonText |
String | 否 | 「取消」按鈕上顯示的文字。若省略,會依登入者語系顯示「Cancel」。 |
config.showCloseButton |
Boolean | 否 | 是否顯示右上角關閉按鈕。true: 顯示false: 不顯示(預設)。若設定為不顯示,則 Esc 鍵關閉視窗的功能也會被停用。 |
config.beforeClose |
Function | 否 | 當使用者嘗試關閉對話框時(按下確定、取消、關閉或 Esc)執行的函式。函式的引數會傳入使用者的操作類型:OK、CANCEL、CLOSE。若回傳 false,或回傳 Promise 並在解析後為 false,則對話框不會被關閉。 |
此函式會回傳一個 Promise 物件,物件中包含兩個可用方法:
| 屬性名稱 | 型別 | 說明 |
|---|---|---|
show() |
Function | 顯示對話框的非同步函式,無參數。回傳 Promise,並於對話框關閉後解析(fulfilled),回傳使用者的操作結果:OK: 點擊「確定」按鈕。CANCEL: 點擊「取消」按鈕。CLOSE: 點擊「關閉」按鈕或按下 Esc 鍵。FUNCTION: 透過 close() 函式手動關閉時。 |
close() |
Function | 手動關閉對話框的函式,無參數、無回傳值。 |
// kintone submit 事件中
// 建立可輸入內容的自訂對話框
const inputElement = document.createElement('textarea')
inputElement.style.width = '100%'
inputElement.style.height = '80px'
inputElement.placeholder = '請輸入備註...'
const dialog = await kintone.createDialog({
title: '輸入備註',
body: inputElement,
showCancelButton: true,
cancelButtonText: '取消',
okButtonText: '確定',
showCloseButton: true,
beforeClose: (action) => {
const text = inputElement.value.trim()
if (action === 'OK' && !text) {
alert('請輸入內容再按確定。')
return false
} else if (action === 'OK' && text) {
record['備註'].value = text
}
}
})
// 顯示對話框並取得結果
const result = await dialog.show()
if (result === 'OK') {
return event // 完成 submit 事件
} else {
return false // 取消 submit 事件
}
指定於 config.body 的元素(Element object)會直接插入對話框中。
若內容包含使用者輸入或動態字串,請務必進行防止 XSS 的處理(Sanitize)。
kintone.showNotification()


使用 kintone.showNotification(type, message) 可在畫面上方顯示提示訊息。
此訊息會依照不同類型以顏色區分,可用來提示操作成功、錯誤、或一般資訊。
kintone.showNotification(type, message)
| 參數名稱 | 型別 | 必填 | 說明 |
|---|---|---|---|
type |
String | 是 | 提示訊息的類型。可指定下列其中一種:ERROR: 錯誤(紅色)SUCCESS: 成功(綠色)INFO: 資訊(藍色) |
message |
String | 是 | 要顯示的訊息文字。 |
此函式會回傳一個 Promise 物件。
當提示訊息顯示完成後,Promise 會被解析(fulfilled)。
// 顯示錯誤訊息
kintone.showNotification('ERROR', '資料儲存失敗。')
// 顯示成功訊息
kintone.showNotification('SUCCESS', '資料已成功儲存。')
// 顯示資訊訊息
kintone.showNotification('INFO', '開始處理中...')
// 非同步處理範例
kintone.showNotification('SUCCESS', '處理完成。').then(() => {
console.log('提示訊息已顯示')
})
💡2025/11/12 註:
由於目前此 API 不支援主動關閉以及設定顯示時長的方法,如果要做到這些效果,還是推薦使用 kintone UI Component 的 Notification 元件:
https://ui-component.kintone.dev/docs/components/desktop/notification
kintone.showLoading()
使用 kintone.showLoading(state) 可以顯示或隱藏載入中的 UI 畫面。
當載入畫面顯示時,使用者無法進行任何操作,適合用於等待 API 回應或長時間處理的情境。
kintone.showLoading(state)
| 參數名稱 | 型別 | 必填 | 說明 |
|---|---|---|---|
state |
String | 是 | 載入畫面的狀態。可指定:VISIBLE: 顯示載入畫面。HIDDEN: 隱藏載入畫面。 |
此函式會回傳一個 Promise 物件。
當載入畫面顯示或隱藏完成後,Promise 會被解析(fulfilled)。
// 顯示載入畫面
kintone.showLoading('VISIBLE')
// 模擬長時間處理
setTimeout(() => {
// 隱藏載入畫面
kintone.showLoading('HIDDEN')
}, 3000)
這四個全新的 UI 操作 API,讓 kintone 的客製化開發更貼近系統原生體驗。
無論是提示訊息、確認對話框,或是載入畫面,都能以簡潔的語法快速呼叫、免去手動撰寫 HTML 與樣式的麻煩。
對於以往習慣使用 kintone UI Component 或外部函式庫的開發者,這些 API 提供了更輕量、維護性更高的替代方案。
未來若有需要彈出訊息、顯示載入狀態或輸入對話框的情境,不妨優先考慮使用這些官方 API,讓你的客製化程式更簡潔、穩定、並與 kintone 介面完美融合。