javascript - 当用户单击浏览器的后退按钮时隐藏 div

标签 javascript jquery html css

当用户点击一个缩略图时,它会打开一个覆盖整个屏幕的 div,文档标题和 URL 都会改变。

$('.view-overlay').show();
$('html,body').css("overflow","hidden");

// once AJAX is done, in success:

$('.view-overlay').append(data);
window.history.pushState('page2', title, url);
document.title = title;

当用户单击后退按钮时,我想反转它,执行以下 JS:

$('.view-overlay').empty().append('<div class="view-close">x</div>').hide();
$('html,body').css("overflow","auto");
window.history.pushState('page1', "previous title", "previous url");
document.title = "previous title";

我试过 onbeforeunload 但我不确定它是否可以这样使用

最佳答案

window.onpopstate您检测到诸如后退按钮被按下之类的事件。

编辑:在您的示例中,您可以:

window.onpopstate = function() {
    $('.view-overlay').empty().append('<div class="view-close">x</div>').hide();
    $('html,body').css("overflow","auto");
    window.history.pushState('page1', "previous title", "previous url");
    document.title = "previous title";
}

但是,您不需要手动设置标题或 URL,因为它们在历史堆栈中,浏览器会自动更新它们。

关于javascript - 当用户单击浏览器的后退按钮时隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462541/

相关文章:

javascript - Fab 工具栏看起来不正确

javascript - ajax post 之后我无法从 JSON 对象数组中提取数据?

javascript - 比较两个数组时不执行函数

javascript - 我如何否定 jQuery 中的 $.is 函数?

javascript - 如何选择和更改此代码中的百分比值?

html - 如何更改此导航栏的颜色和背景?

javascript - Windows 10 通用应用程序 C# - 运行 Javascript

javascript - 确保第二个脚本仅在第一个脚本之后加载

javascript - cloneNode 与 innerHTML

javascript - scrollreveal.min.js 错误,仅在网站的索引页面上