开发页面,如果我们关闭选项卡,则应保存关闭时间

如何解决开发页面,如果我们关闭选项卡,则应保存关闭时间

<script>
  window.onbeforeunload = function (e) {
      return "Please click 'Stay on this Page' and we will give you candy";
  };
</script>

我将它添加到 index.html(reactjs) 文件中,因此当单击关闭窗口或选项卡时, 它显示“你想离开”的警告标志,我需要在关闭标签时节省时间。

我找不到保存浏览器/标签关闭间的方法。 请告诉我可能的解决方案。

import React,{ Component } from 'react';
//deleted imports to decrease code length

class PrivilegeReport extends Component {
    constructor(props) {
        super();
        this.state = {
            loaded: true
        };
    }


    handleWindowClose(){
        alert("Alerted browser Close");
    }
 
    componentDidMount() {
        document.title = "Lims - Privilege Report ";
        window.addEventListener("beforeunload",(ev) => 
{  
    ev.preventDefault();
    return ev.returnValue = 'Are you sure you want to close?';

});
    console.log("beforeunload")

    }
    componentwillUnmount() {
        window.removeEventListener('onbeforeunload',this.handleWindowClose);
        console.log("onbeforeunload")
    }
    

    render() {
        !this.state.loaded ? startLoading() : stopLoading();
        return (
            this.state.loaded && <div>
                <Header />
                <Sidebar context="Priviledge Report" />
                <main>
                    <div className="container">
                        <Breadcrumb {...{ context: 'REPORTS',leaf: 'Privilege Report' }} />
                        <div className="columns is-mobile">
                            <div className="column"><h1 className="title">Privilege Report</h1></div>
                            <div className="buttons">
                                <button className="button is-primary" onClick={e => { console.log("TBD...."); }}>Print</button>
                                <button className="button is-primary" onClick={e => { console.log("TBD...."); }}>Download</button>
                            </div>
                        </div>
                        <div className="columns">
                            <div className="column">
                                <Tabs>
                                    <TabList>
                                        <Tab><div className="tab-title">User to User Type Mappping</div></Tab>
                                        <Tab><div className="tab-title">User Type to Policy Mapping</div></Tab>
                                    </TabList>
                                    <TabPanel><Grid status="UTU" /></TabPanel>
                                    <TabPanel><Grid status="UTP" /></TabPanel>
                                </Tabs>
                            </div>
                        </div>
                    </div>
                </main>
            </div>
        )
    }
}

const mapStatetoProps = state => ({
    me: state.me
});

const mapdispatchToProps = dispatch => {
    return {
        //updateMe: data => dispatch(updateMe(data))
    };
}

export default connect(
    mapStatetoProps,mapdispatchToProps
)(withRouter(PrivilegeReport));

我在 onbeforeunload 和 onunload 上使用了事件监听器,但由于我是初学者,所以无法完全理解。

解决方法

您可以检查浏览器事件并使用窗口事件侦听器跟踪它们。 类似的东西:

window.addEventListener('beforeunload',function (e) {
            e.preventDefault();
            e.returnValue = "Please click 'Stay on this Page' and we will give you candy";
           alert("Please click 'Stay on this Page' and we will give you candy")
           //you can display you message here aslo can log time with new Date() to fetch system date and time.
        });

有关在标签上处理浏览器活动的更多信息,您可以查看此链接 https://www.geeksforgeeks.org/how-to-detect-browser-or-tab-closing-in-javascript/

希望这能解决您的问题。

,

感谢其他人,我已经添加了代码并且运行良好。

<script>
  window.onbeforeunload = function (e) {
      e.preventDefault();
      e.returnValue = "Please click 'Stay on this Page' and we will give you candy";
      var d = new Date().toLocaleTimeString();
      console.log(d)
  };
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?