onHashChange 在 Safari 中有效吗?

Posted

技术标签:

【中文标题】onHashChange 在 Safari 中有效吗?【英文标题】:Does onHashChange work in Safari? 【发布时间】:2011-05-01 01:48:36 【问题描述】:

onHashChangehashChange 是否在 Safari 中工作?我在 Windows 7 上使用 Safari 4.0.4 对其进行了测试,但它对我不起作用。

如果不起作用,是否有任何解决方案可以跟踪hash 是否已更改?

【问题讨论】:

***.com/questions/680785/… 在那里你会找到你的解决方案。回答问题,它在 Safari 中有效吗? - 没有。 哦,。试试“F*cking IE”的大小 【参考方案1】:

在我们的应用中,我们轮询以检查更改:

$b.hashCheck = setInterval(
    function()
        if ( window.location.hash !== $b.C.current_hash)
            $b.C.current_hash = window.location.hash;

            //call the on change action here

        
    ,$b.C.hashCheckDelay
);

$b 是我们用于命名空间的全局对象,hashCheckDelay 根据经验设置为 120 毫秒。虽然执行这种过程看起来有点难过,但在任何浏览器上都没有任何性能问题我们测试了。

【讨论】:

感谢您的回答,这可能是跟踪不支持onHashChange 的浏览器中哈希是否已更改的解决方案,但这不是一个好的解决方案,因为需要大量查询性能太高了。 我在我们的应用程序中使用它,但是一个函数会检查并将消息发送到相关对象。没有性能问题。【参考方案2】:

Safari 4.0.4 中它还没有工作,但在最新的一个工作正常。而且我没有找到任何可接受的解决方案来跟踪那些不支持onHashChange的浏览器的哈希是否发生了变化。

【讨论】:

if ("onhashchange" in window) alert("浏览器支持hashchange事件!");

以上是关于onHashChange 在 Safari 中有效吗?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 登录在 Safari 中有效,但在 UIWebView 中无效

CSS 动画在 chrome 中有效,但在 Firefox 和 Safari 中无效

对 window.onhashchange 未检测到的 URL 哈希更改执行函数

Safari 未能使用 Angular 的 HttpClient 发送有效的 GET 请求

测量图像的宽度和高度在 Chrome 和 Firefox 中返回 0,但在 Safari 中有效

XCODE swift - webview 无法打开 ics 链接 - 在 safari 中有效