diff --git a/src/dialog/Dialog.js b/src/dialog/Dialog.js
index 5f0c4f925..3b602798e 100644
--- a/src/dialog/Dialog.js
+++ b/src/dialog/Dialog.js
@@ -1,11 +1,12 @@
import { createNamespace } from '../utils';
import { PopupMixin } from '../mixins/popup';
+import { CloseOnPopstateMixin } from '../mixins/close-on-popstate';
import Button from '../button';
const [createComponent, bem, t] = createNamespace('dialog');
export default createComponent({
- mixins: [PopupMixin],
+ mixins: [PopupMixin, CloseOnPopstateMixin],
props: {
title: String,
diff --git a/src/dialog/README.md b/src/dialog/README.md
index eacbdcb64..40bea7bf6 100644
--- a/src/dialog/README.md
+++ b/src/dialog/README.md
@@ -128,6 +128,7 @@ export default {
| confirmButtonText | Confirm button text | `String` | `Confirm` |
| confirmButtonColor | Confirm button color | `String` | `#1989fa` |
| overlay | Whether to show overlay | `Boolean` | `true` |
+| closeOnPopstate | Whether to close when popstate | `Boolean` | `false` |
| closeOnClickOverlay | Whether to close when click overlay | `Boolean` | `false` |
| lockScroll | Whether to lock body scroll | `Boolean` | `true` |
| beforeClose | Callback before close,
call done() to close dialog,
call done(false) to cancel loading | (action: string, done: function) => void | - |
diff --git a/src/dialog/README.zh-CN.md b/src/dialog/README.zh-CN.md
index a487cbb73..d74bf96a8 100644
--- a/src/dialog/README.zh-CN.md
+++ b/src/dialog/README.zh-CN.md
@@ -157,6 +157,7 @@ export default {
| confirmButtonText | 确认按钮文案 | `String` | `确认` | - |
| confirmButtonColor | 确认按钮颜色 | `String` | `#1989fa` | 1.6.14 |
| overlay | 是否展示遮罩层 | `Boolean` | `true` | - |
+| closeOnPopstate | 是否在页面回退时自动关闭 | `Boolean` | `false` | 2.0.5 |
| closeOnClickOverlay | 点击遮罩层时是否关闭弹窗 | `Boolean` | `false` | - |
| lockScroll | 是否锁定背景滚动 | `Boolean` | `true` | - |
| beforeClose | 关闭前的回调函数,
调用 done() 后关闭弹窗,
调用 done(false) 阻止弹窗关闭 | `(action, done) => void` | - | - |
diff --git a/src/dialog/index.js b/src/dialog/index.js
index 2ae98e5f5..d61c12a57 100644
--- a/src/dialog/index.js
+++ b/src/dialog/index.js
@@ -60,6 +60,7 @@ Dialog.defaultOptions = {
confirmButtonColor: null,
showConfirmButton: true,
showCancelButton: false,
+ closeOnPopstate: false,
closeOnClickOverlay: false,
callback: action => {
instance[action === 'confirm' ? 'resolve' : 'reject'](action);