【问题标题】:URI encoded hashtag within url automatically decoded through PushStateurl 中的 URI 编码主题标签通过 PushState 自动解码
【发布时间】:2012-03-13 10:31:11
【问题描述】:

我正在尝试推送带有 url 编码主题标签的 URL(我正在构建 Twitter 客户端)。 History.js 显然将 URI 编码的主题标签 (%23) 视为 URL 中的哈希参数,因此 URL 会自动对它们进行解码,因此不会触发此类链接的状态更改。

例如,url /first/%23second 被转换为 /first/#second

如果不弄乱整个插件,我该怎么办?

【问题讨论】:

    标签: jquery urlencode history.js


    【解决方案1】:

    如果您在本地托管 History.js 文件,请在 m 对象上查找名为“unes​​capeString”的函数(或者只需 Ctrl+F 到“m.unescapeString”。

    然后您可以将其更改为:

    m.unescapeString=function(b){
        var c=b,d;
    
        if(!history.pushState){  //Adding this check.
            for(;;) {
                d = a.unescape(c);
    
                if (d===c) 
                    break;
    
                c = d;
            }
        }
    return c
    }
    

    这基本上可以解决您的问题。 (我相信这个方法是用来支持不支持history.pushState的浏览器)

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 2011-06-27
      • 2015-09-14
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多