onHashChange 在 Safari 中有效吗?
Posted
技术标签:
【中文标题】onHashChange 在 Safari 中有效吗?【英文标题】:Does onHashChange work in Safari? 【发布时间】:2011-05-01 01:48:36 【问题描述】:onHashChange
或 hashChange
是否在 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 请求