javascript - URL 中的斜杠被转义

标签 javascript jquery url jquery-plugins slash

我在我的网络应用程序中使用了 jquery.history 插件,但遇到了“/”被转义的问题,例如 我需要生成以下 URL

/SomeAction#Resource/ResOne

但是得到了

/SomeAction#Resource%F2ResOne

用于加载我使用的 URL

$.history.load(btn.attr('action-name'));

其中 btn 元素具有属性 action-name 'Resource/ResOne'(它在源代码中具有 '/' 符号)

那么问题是如何实现“/”符号将保留在 URL 中? (当您打开收件箱中的某些邮件时,这种方法在 gmail 中使用,所以请不要使用在服务器端使用解码技术的技术来回答)

谢谢

最佳答案

decodeURIComponent 本身可能无济于事。查看插件,具体来说,让我们查看“locationWrapper”。这是当您添加“加载”一个 URL 时可能被调用的事情之一。

var locationWrapper = {
    put: function(hash, win) {
        (win || window).location.hash = this.encoder(hash);
    },
    get: function(win) {
        var hash = ((win || window).location.hash).replace(/^#/, '');
        try {
            return $.browser.mozilla ? hash : decodeURIComponent(hash);
        }
        catch (error) {
            return hash;
        }
    },
    encoder: encodeURIComponent
};

注意到编码器部分了吗?您需要以某种方式覆盖它,或者更换编码器。快速浏览一下代码,它看起来并不过分“扩展”友好。因此,根据该代码,即使您将 Action 名称“解码”一百万次也没关系,它仍然会再次对其进行编码。

编辑:刚在 wiki 上找到这个:

$.history.init(callback, { unescape: true });

这是一个配置选项。 https://github.com/tkyk/jquery-history-plugin/wiki/How-to-use-the-forward-slash-instead-of-ugly-%27%252F%27

无论如何,祝你好运!

关于javascript - URL 中的斜杠被转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200552/

相关文章:

javascript - AngularJS 将服务数组变量绑定(bind)到 Controller 范围

jquery - 我的日期选择器 Jquery 超出了 css 范围

javascript - 在 Jquery 中删除按钮父容器

javascript - 使用 JavaScript 检查字符串中存在的模式

java - Apache Commons FileUtils 检查文件是否存在于 ftpurl 中

javascript - 弹出窗口拦截器 IE8 和安全区域

javascript - 为什么 val() 返回未定义?

javascript - 在数组中搜索字符串 - 返回 -1

javascript - 鼠标悬停时图像缩放到指针位置

jquery - 如何在 fancytree jquery 中获取树元数据