解码URL Javascript / JQuery

时间:2016-05-11 14:49:34

标签: javascript url escaping

我有以下代码并且转义似乎不起作用。 我已经尝试过替换,但无法使其正常工作。

“数据”正在从另一个页面转发,并且包含2个单词的参数,例如:“full loaded”,“just there”......

任何帮助都非常感激。

感谢您的时间。

    $(document).ready(function () {
  var selectData = unescape(document.location.search.substring(1).split('=')[1]);
  var $select = $('#eventsList');
  $select.val( selectData );
});

$(document).ready(function() {
  $('a[href="http://pt.example.org/"]').click(function (e) {
    e.preventDefault();
    var data =  $(this).data('select');
    window.location = $(this).attr('href') + '?selectParam=' + escape(data);
  });
});

2 个答案:

答案 0 :(得分:0)

当转义URL GET参数时,您想使用encodeURIComponent:

$(document).ready(function() {
  $('a[href="http://pt.example.org/"]').click(function (e) {
    e.preventDefault();
    var data =  $(this).data('select');
    window.location = $(this).attr('href') + '?selectParam=' + encodeURIComponent(data);
  });
});

答案 1 :(得分:0)

我对此有点挣扎,但发现它只适用于href*

$(document).ready(function() {
  $('a[href*="http://pt.example.org/"]').click(function (e) {
    e.preventDefault();
    var data =  $(this).data('select');
    window.location = $(this).attr('href') + '?selectParam=' + escape(data);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="test" href="http://pt.example.org/">pt.example.org</a>

该代码段不起作用,因为pt.example.org不存在,请使用现有域进行尝试。