`
zhouyrt
  • 浏览: 1159235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Firefox中使用location.hash会自动decodeURI Bug

    博客分类:
  • BUG
 
阅读更多

用一中文单词测试,比如“昌平” encodeURI后为“%E6%98%8C%E5%B9%B3”。

在各浏览器地址栏输入: http://start.firefoxchina.cn/#%E6%98%8C%E5%B9%B3

 

从控制台获取hash,各浏览器表现如下

 

Firefox21


 

Chrome27/Safari5


 

IE9/10/11


 

可以看见,只有Firefox中把#后的decodeURI了,这在Firefox的地址栏也可以看见。这应该是个bug,如果所有浏览器要保持一致(未decodeURI),使用以下代码

function getHash(location) {
    var match = location.href.match(/#(.*)$/);
    return match ? match[1] : '';
}

 

相关:

http://xueduany.github.io/KitJs/urlencode.html

  • 大小: 1.5 KB
  • 大小: 1.5 KB
  • 大小: 1.4 KB
分享到:
评论

相关推荐

    window.location.hash解析

    在JavaScript编程中,`window.location.hash` 是一个非常重要的属性,它用于获取或设置当前URL的哈希值,也就是URL中“#”后面的部分。这个属性在开发网页应用时经常被用来实现页面内的导航和锚点定位。这篇博客文章...

    小发现之浅谈location.search与location.hash的问题

    例如,在URL中同时存在search和hash时,如果hash值放在search后面,可能会导致无法获取search参数。例如:http://example.com/path?a=1&b=2#a=1&b=2。在这种情况下,location.search将无法获取到参数。 四、解决...

    js 页面刷新location.reload和location.replace的区别小结.docx

    使用 location.reload() 方法时,如果页面的 method 是 "post",那么将会消失“网页过期”的提示。这是因为 Session 的平安爱护机制。 二、location.replace() 方法 location.replace() 方法用于通过指定 URL 替换...

    HashMap扩容时的rehash方法中(e.hash & oldCap) == 0算法推导.docx

    总结起来,HashMap的扩容`rehash`过程中`(e.hash & oldCap) == 0`的算法推导是基于`oldCap`为2的幂次方的特性,通过对`e.hash`进行按位运算,将元素在新旧数组中的位置进行了巧妙的划分,保证了扩容过程的高效性和...

    location.hash保存页面状态的技巧

    hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)...在我们的项目中,写了一个很简单的JavaScript基类来处理location.hash从而保存页面状态,今天在此就分享给大家。 (本文的内容可能

    利用location.hash实现跨域iframe自适应

    www.baidu.com,假设地址:http://www.baidu.com/b.html 实现效果: A域名下的页面a.html中通过iframe嵌入B域名下的页面b.html,由于b.html的宽度和高度是不可预知而且会变化的,所以需要a.html中的iframe自适应大小....

    jquery.hash.min.js 和 jquery.ba-hashchange.min.js

    在网页开发中,jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了 DOM 操作、事件处理和动画制作等任务。而 `jquery.hash.min.js` 和 `jquery.ba-hashchange.min.js` 这两个文件则是在 jQuery 基础上扩展了对...

    [removed].hash 属性使用说明

    比如...另外的话,浏览器上的“前进”“后退”按钮也会失效,这于很多习惯了传统页面的用户来说,是一个很大的使用障碍。 那么,怎么用location.hash来解决这两个问题呢?其实一点也不神秘。 比如,我

    cra-location-hash-router:使用location.hash的CRA路由器

    CRA location.hash路由器在此存储库中,我使用URL片段验证了有关客户机+服务器路由解决方案的想法。 这个想法是针对您的SPA是通过文件服务器(例如GitHub Pages)提供SPA的情况,而您不能为index.html设置一个...

    scrollHash.js:滚动到Blaock时,然后更改location.hash!

    `scrollHash.js`的主要功能是监听页面滚动事件,当用户滚动到页面中的某个区块时,它会自动更新`window.location.hash`,使得浏览器URL显示对应的区块标识。这在多段式的长页面设计中特别有用,因为用户可以通过直接...

    location和history对象

    `location` 和 `history`对象的协作体现在,当我们通过`location.href`或`location.assign()`改变URL时,浏览器会更新当前的URL并在历史记录中创建一个新的条目。而`history.pushState()`和`history.replaceState()`...

    MD5校验工具Hash.exe使用说明.pdf

    MD5 校验工具 Hash.exe 使用说明 Hash.exe 是一个 MD5 校验工具,由浪潮电子信息产业股份有限公司开发,用于确保发布的 FW 版本及下载使用版本的一致性。本文档将详细介绍 Hash.exe 工具的使用说明和详细步骤。 ...

    js location.replace与location.reload的区别

    需要注意的是,如果当前页面在用户刷新时没有从服务器请求资源,那么使用location.reload()并不会从服务器重新加载资源,它可能会使用缓存中的旧页面内容。 在实际开发中,这两种方法的使用可以根据需求灵活选择。...

    js获取location.href的参数实例代码

    在本文中,我们将深入探讨如何使用JavaScript来获取`location.href`中的参数。 首先,`location.href` 的结构通常如下: ``` protocol://hostname:port/pathname?search#hash ``` - `protocol`:比如 `http:` 或 ...

    location.href用法总结(最主要的)

    `location.href`还可以与URL的其他部分结合使用,如`location.pathname`获取路径名,`location.search`获取查询字符串,`location.hash`获取URL的哈希部分,这些可以用于构建和解析URL,实现更复杂的页面操作。...

    hashRouter:location.hash 的路由器

    location.hash 的路由器 文件 示例网址: : $router.path console . log ( $router . path ) ; // aaa/bbb/ccc?x=1&y=2&y=3&z $router . path = 'ccc/ddd' ; console . log ( $router . path ) ; // ccc/ddd $...

Global site tag (gtag.js) - Google Analytics