首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中使用diacritics编码的主干URL

在JavaScript中使用diacritics编码的主干URL
EN

Stack Overflow用户
提问于 2016-10-06 08:19:49
回答 1查看 255关注 0票数 0

我有一个搜索表单,它将用户重定向到search/thetermusersearched,其中thetermusersearched是他输入的确切值。所有这些都是通过主干提供的导航功能实现的。

当我在英语中使用字符串(masa de calcat)时,这一切都很好,但是当我在输入(mas de călcat)中添加对话符时,我会触发两次路由函数。

我遇到的问题是火狐和Safari (后者在Mac和iOS中)

当我使用encodeURIencodeURIComponent时,我尝试使用navigate,但没有成功。

HTML

代码语言:javascript
复制
<div id="view-goes-here">
  <a href="#" data-string="masa de calcat">One alert</a>
  <a href="#" data-string="masă de călcat">Two alerts</a>
</div>

JS

代码语言:javascript
复制
var R = Backbone.Router.extend({
    routes: {
        'results/:query': 'results'
    },
    results: function(query) {
        alert('Route triggered: ' + decodeURIComponent(query));
    }
});
var myR = new R;
Backbone.history.start();

$(function(){
  $('a').on('click', function(e){
   e.preventDefault();
   var href = $(this).data('string');
   href = 'results/' + encodeURIComponent(href);
   console.log(href);
   myR.navigate(href, {trigger: true});
  })
})

见小提琴:http://jsfiddle.net/adyz/qcged76e/4/

对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-08 18:21:21

你的小提琴上有两个链接,我得到了双重警告。我试着在编码后使用转义,这似乎是有效的:

代码语言:javascript
复制
href =  'results/' + escape(encodeURIComponent(href));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39890991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档