Javascript 仅当用户使用URL查询时显示DIV

Javascript 仅当用户使用URL查询时显示DIV,javascript,jquery,Javascript,Jquery,我只想在用户在URL中键入查询时显示div。我有以下代码: HTML <div id="hidden" style="width:100%;height:20%;background-color:blue;display:none;"> Hidden Div Contents </div> 隐藏的Div内容 JS $(function() { var params = {}; var ps = window.location.search.split(/\?

我只想在用户在URL中键入查询时显示div。我有以下代码:

HTML

<div id="hidden" style="width:100%;height:20%;background-color:blue;display:none;">
Hidden Div Contents
</div>

隐藏的Div内容
JS

$(function() {
  var params = {};
  var ps = window.location.search.split(/\?|&/);
  for (var i = 0; i < ps.length; i++) {
        if (ps[i]) {
              var p = ps[i].split(/=/);
              params[p[0]] = p[1];
        }
  }
  var divToShow = params.from;
  $('#'+divToShow).show();
});
$(函数(){
var params={};
var ps=window.location.search.split(/\?&/);
对于(变量i=0;i

JSFiddle-

链接查看它的工作原理-


问题

它在fiddle上似乎运行正常,但在我的服务器上,它使用打印在div中的脚本中的文本来呈现带有或不带有查询的div

ie,看起来我好像在编码:

$(function(){……$('#'+divToShow.show();})


为什么?

您的JS代码不会解码URL参数值。正确解码URL参数

// based on https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
var urlParams = {};
(function () {
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = window.location.search.substring(1);

    while (e = r.exec(q))
       urlParams[d(e[1])] = d(e[2]);
})();

if(urlParams.from) $("#hidden").show();

如果它在小提琴上工作,而不是在你的服务器上工作,我们如何判断出什么地方出了问题?