Yêu cầu Dec 27th, 2019 9:50 a.m. 1416 0 2
  • 1416 0 2
0

Ngăn sự kiện reload page

Chia sẻ
  • 1416 0 2

Hello mn ! Mình có vấn đề này mong được các bạn giúp đỡ. Minh đang làm project bằng React, App của mình có chứa Form nhập liệu. Giờ m muốn bắt sự kiện khi người dùng reload page (nhấn F5 hoặc nút refresh của browser) thì sẽ ngăn sự kiện reload lại và hiện pop-up cảnh báo với người dùng ( nội dung là nếu reload dữ liệu đang nhập sẽ bị mất hết, bạn có muốn không ?)

Đây là đoạn code của mình:


  componentDidMount() {
    window.addEventListener('beforeunload', this.handleLeavePage);
  }

  componentWillUnmount() {
    window.removeEventListener('beforeunload', this.handleLeavePage);
  }

  handleLeavePage = (event) => {
    event.preventDefault();
    this.setState({openPopup: true});
  }

Nhuwng mình test thử thì nó không chặn được và vẫn bị load lại . Các bạn có thể giúp m được không. Mình xin cám ơn nhiều ạ !

2 CÂU TRẢ LỜI


Đã trả lời Dec 27th, 2019 10:40 a.m.
+1

Bạn thử như này xem được không

componentDidMount() {
    window.onbeforeunload = function() {
        this. handleLeavePage();
        return;
    }.bind(this);
}
Chia sẻ
Avatar Hoang vn @wiliamfeng
Dec 27th, 2019 10:48 a.m.

tks bạn, để tối về mình check lại nhé

Avatar Hoang vn @wiliamfeng
Dec 28th, 2019 3:27 a.m.

@quankm1097 mình test thừ không được bạn ơi, nó không ngăn được sự kiện và vẫn bị reload lại page

Avatar Hoang vn @wiliamfeng
Dec 30th, 2019 6:44 a.m.

Các b giúp đỡ m với

Đã trả lời Dec 31st, 2019 3:14 a.m.
0

Có ai ghé qua không giúp m với ạ 😢

Chia sẻ
Dec 31st, 2019 10:04 a.m.

Bác có thể thử đoạn JS này:
window.onbeforeunload = function(){ return "Are you sure you want to leave our website?"; };
T không chắc là có thể customize lại cái message.

Dec 31st, 2019 10:09 a.m.
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí