gpt4 book ai didi

对 IE6 和 IE7 的 Angularjs 历史支持

转载 作者:行者123 更新时间:2023-12-04 18:09:45 26 4
gpt4 key购买 nike

我正在使用 路由Angularjs对于我的 SPA,但我必须支持 IE7(以及 IE7 兼容模式下的 IE8)。我希望浏览器历史记录仍然有效。我不在乎是否必须使用 jQuery 插件。

最佳答案

我检查了 Angular 源 sniffer.js , location.js browser.js 检查历史如何运作的机制。本质上,如果浏览器支持历史记录(即 $sniffer.history 为真),则使用历史记录 api,否则它只会写入 location.href (或 locaiton.replace(url))。退房 $browser.url(url, replace) browser.js ,第 149 行了解详情。

因此,如果 angular 只是写入 location然后是一个 jquery 插件,如 Ben AlmanBBQ将接收此事件,因为它正在轮询 location.hash 的更改。通过简单地包含 Ben 的 hashchange plugin,我已经成功地在 IE8(在 IE7 模式下)运行了它。 (BBQ 的一个子集),然后是最小的事件触发和事件监听:

$(function () {
$(window).hashchange(function() {
// don't delete this empty handler or ie6/7 history won't work.
});
// call hashchange on first load
$(window).hashchange();
});

注意:jQuery hashchange(和 BBQ)正在使用已弃用的 $.browser.msie第 300 行 所以改用 (document.documentMode != undefined)正如 Ben 博客文章的评论中所建议的那样。

关于对 IE6 和 IE7 的 Angularjs 历史支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17211947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com