Javascript 仅当用户使用URL查询时显示DIV
我只想在用户在URL中键入查询时显示div。我有以下代码: HTMLJavascript 仅当用户使用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(/\?
<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();
如果它在小提琴上工作,而不是在你的服务器上工作,我们如何判断出什么地方出了问题?