Asked Dec 27th, 2019 9:50 a.m. 1448 0 2
  • 1448 0 2
0

Ngăn sự kiện reload page

Share
  • 1448 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 ANSWERS


Answered 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);
}
Share
Avatar Hoang vn @wiliamfeng
Dec 27th, 2019 10:48 a.m.

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

0
| Reply
Share
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

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

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

0
| Reply
Share
Answered Dec 31st, 2019 3:14 a.m.
0

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

Share
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.

0
| Reply
Share
Dec 31st, 2019 10:09 a.m.
0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.