从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL
Posted
技术标签:
【中文标题】从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL【英文标题】:Getting Query Parameter from a URL which inturn has some URL with Query parameters 【发布时间】:2011-03-24 07:50:36 【问题描述】:我有以下网址
http://somesite/somepage.aspx
我传递了一个查询参数值,该值具有另一个带有类似这样的查询参数的 URL。
http://somesite/somepage.aspx?pageURL=http://someothersite/someotherpage.aspx?param1=value&source=http://anotheronesite/anotherpage
我需要获取 pageURL 值作为粗体字母。但我得到了
http://someothersite/someotherpage.aspx?param1=value
我没有得到源参数。我正在使用以下 javascript 函数 -
function getParameterByName( name )
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
有什么想法吗?
【问题讨论】:
您从哪里获得名称/URL? 我在后面的代码中设置了-C#。 我想要一切 pageURL。它不会改变。我可以做吗?以 pageURL 作为参数的特定函数就可以了。 @NLV:我不知道C#
,但也许这对你有帮助:***.com/questions/1380617/request-url-parameter 无论如何,你必须对&
进行编码,这样它就不会被识别为“base”的参数网址”。
@NLV:html 编码!= URL 编码:en.wikipedia.org/wiki/Percent-encoding
【参考方案1】:
你考虑过 html url 编码 pageURL 参数吗?
这将大大简化您的任务
【讨论】:
Okie,你能解释一下它对我有什么帮助吗? 没有线索。陷入同样的问题。有什么想法吗? easy...名字中第一个“=”之后的所有内容都是您的参数。只需将其解码回来,您就会得到一个网址。 或者简单地说:你的脚本应该可以工作,因为 pageURL 是编码的。只是不要忘记将其编码回来。 jquery 有 htmlEncode 和 htmlDecode ;) 好吧,当我对它进行编码时,& 被 & 取代。没有其他的。所以 & 仍然在源链接之前,并且它没有被那个 JS 函数获取。【参考方案2】:您需要使用URL encoding 对参数进行编码。否则&
被视为保留字符,属于“基本 URL”。
【讨论】:
以上是关于从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL的主要内容,如果未能解决你的问题,请参考以下文章