PerformanceNavigation 的替代 Javascript 方法(跨浏览器兼容)

Posted

技术标签:

【中文标题】PerformanceNavigation 的替代 Javascript 方法(跨浏览器兼容)【英文标题】:Alternative Javascript Method for PerformanceNavigation (Cross-browser Compatible) 【发布时间】:2020-12-26 09:37:15 【问题描述】:

我已经成功实现了以下 javascript,但在实现与 window.performance.navigation 的跨浏览器兼容性(特别是在 Firefox 中)时遇到了一些困难,因为它已被弃用。

到目前为止,这是我已经实现的:

window.addEventListener("load",function(event)
    var historyTraversal=event.persisted||
    (typeof window.performance!=="undefined"&&
    window.performance.navigation.type===2);
    if(historyTraversal)
        window.history.back();
    
);

还有其他的格式化方法吗?

【问题讨论】:

【参考方案1】:

正如MDN 中所述,Performance.navigation 已被弃用,因为它在Navigation Timing Level 2 specification 中被标记为这样。按照规范的建议,应该改用PerformanceNavigationTiming:这与所有最新的主流浏览器兼容。

您要找的房源现在here,您可以查询var perfEntries = performance.getEntriesByType("back_forward");

【讨论】:

【参考方案2】:

不幸的是,它在 Safari 中不起作用。

确实如此(参见Safari back button doesn't reload page when used):

window.addEventListener("pageshow", function(evt)
    if(evt.persisted)
    setTimeout(function()
        window.location.reload();
    ,10);

, false);

【讨论】:

以上是关于PerformanceNavigation 的替代 Javascript 方法(跨浏览器兼容)的主要内容,如果未能解决你的问题,请参考以下文章

ETF替代规则

替代拉链的替代方式

python实现替代密码与置换密码

Markdown 替代品 Asciidoc 介绍

C# 中怎么应用JSON来替代之前的webservice??

如何强制MonoDevelop的建设使用替代单安装