【问题标题】:Decode URL Javascript/JQuery解码 URL Javascript/JQuery
【发布时间】:2016-09-07 01:34:03
【问题描述】:

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

“数据”是从另一个页面转发的,并且有两个单词的参数,例如:“满载”、“就在那里”...

非常感谢任何帮助。

感谢您的宝贵时间。

    $(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);
  });
});

【问题讨论】:

标签: javascript url escaping


【解决方案1】:

在转义 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);
  });
});

【讨论】:

  • 感谢您的帮助,我之前尝试过,但它不起作用。不知道为什么,但不能让它工作。我应该提到这段代码是为了做类似stackoverflow.com/questions/25104137/… 所示的情况。我可以正确选择表单字段,但 URL 显示如前所述。感谢您的帮助。
【解决方案2】:

我对此有点挣扎,但发现它只适用于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>

sn-p 不起作用,因为pt.example.org 不存在,请尝试使用存在的域。

【讨论】:

  • Pedro Lobito 感谢您的回答,您的更改适用于 chrome,但不幸的是,我仍然在 chrome 和 ie 上显示“/?selectParam=MUSTANG%202016”。
  • 尝试使用document.location
  • 可能问题出在这部分代码???"$(document).ready(function () { var selectData = unescape(document.location.search.substring(1).split ('=')[1]); var $select = $('#eventsList'); $select.val( selectData ); });"
  • 对不起,我在这里还是有点新意。添加到问题的代码。道歉。感谢您的帮助。
  • 把这个var $select = $('#eventsList'); $select.val( selectData );改成这个var select = $('#eventsList'); select.val( selectData );
猜你喜欢
  • 2011-11-09
  • 2012-05-02
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
相关资源
最近更新 更多