gpt4 book ai didi

internet-explorer - Internet Explorer 使用 jQuery 地址将哈希值放入 href 中

转载 作者:行者123 更新时间:2023-12-01 02:44:58 24 4
gpt4 key购买 nike

我正在寻找一个好的pushstate jquery插件来与ajax-json(以及当js关闭时php的mod_rewrite)一起使用,并找到了jQuery地址。我非常喜欢它,因为它有很好的文档记录并且易于使用。 (我从来没有真正弄清楚history.js)但是我注意到伟大的互联网浏览器(9)将哈希值放在了href字段中。它也在示例中执行此操作:http://www.asual.com/jquery/address/samples/state/contact我已经测试了其他浏览器,但您只能使用出色的互联网浏览器看到这一点。有办法解决这个问题吗?

最佳答案

Internet Explorer 9 doesn't support历史 API。相反,使用这些 api 的应用程序必须回退到 onhashchange 功能,该功能利用位置片段在功能较差的浏览器中复制类似的功能。

您所看到的内容是预期的; Internet Explorer 10+ supports this newer functionality ,因此不需要在 url 中添加 /# 来记录和保存状态历史记录。 Internet Explorer 9 不支持 History API,因此必须做出规定。

您提到了history.js,它将对history.pushState等方法的支持扩展到非HTML5浏览器。关于这个项目GitHub page您可以查看一些示例,了解 url 在较新浏览器中的显示方式以及在较旧浏览器中的显示方式。正如预期的那样,您现在遇到的模式也是在那里产生的。

虽然在 Internet Explorer 9 中查看时您的网址中有一个片段,但请注意,这并不反射(reflect)您服务器上请求的路径。请注意在浏览器中输入的请求地址,以及“网络”选项卡中对服务器的实际请求:

enter image description here

解决 404

您在 IE9 中收到 404 的原因是因为在不支持 HTML5 History API 的浏览器中,jQuery.address 将重新导航到您在设置中提供的任何状态。因此,当您输入 url 时,初始请求就会传递到您的服务器。该地址由 mod_rewrite 处理,您的 RewriteRules 确定要加载的初始内容。

当您加载初始内容并设置 jQuery.address 时,甚至会发生一个新的导航到您的设置路径。就您而言,这是 /posters。不幸的是,您没有任何 RewriteRules 来向 /posters 提供内容,因此最终结果是 404。同样,这 发生在 IE9 中,因为 IE9 不支持 History 接口(interface)。

可以通过再次访问 F12 开发人员工具的“网络”选项卡并捕获数据来确认这一点。打开该选项卡后,按“开始捕获”,然后输入购物车上产品的完整路径。您会注意到对该完整路径的初始请求,然后加载了多个依赖项。不久之后,您将看到另一个导航事件发生在您在 $.address.state 中提供的任何路径。

关于internet-explorer - Internet Explorer 使用 jQuery 地址将哈希值放入 href 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847313/

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