有没有办法轻松处理JavaScript中的操作URL?
一些背景信息:
我想使用ThickBox,流行的jQuery模式弹出框,但不引人注目。根据ThickBox文档,我必须将我想要的所有链接设为modal一个CSS类“thickbox”并更改URL ...
...为:
http://www.mysite.com/mypopup?height=200&width=300
我希望只有在启用JavaScript时才会发生这种情况。
所以我使用jQuery获取所有链接并“黑客”检测到'?' URL中的字符,相应地附加“& height ...”或“?height ...”。
在更宏大的方案中,如果URL已经具有“height”参数,这可能会混淆,在这种情况下,我可能只想更新现有的参数而不是给它两个。
这一切都闻起来有点。
我觉得我已经破解了能够/必须已经正确完成的代码!
所以我的问题是:
JavaScript世界中是否有某些东西(插件与否)可以使我做到这样的事情:
var url = Url(elm.attr("href"));
url.parameter("width", "300");
url.parameter("height", "200");
elm.attr("href", url.toString())
或者:
var height = Url(elm.attr("href")).parameter("height");
答案 0 :(得分:1)
此功能执行此操作,只需在要解析的URL的页面上调用它:
function gup( 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 results[1];
}
//for the URL http://www.mysite.com/mypopup?height=200&width=300
var height = gup( 'height' );
var width = gup('width');
alert('Height: ' + height + ' Width: ' + width);
编辑:我不知道这将有多大用处(因为它使用Prototype.js),但这是用于读取和修改查询字符串:
http://code.nontalk.com/2006/10/readmodify-querystring-variables-with.html
答案 1 :(得分:0)
是。 javascript中的location
对象有quite a lot of properties。
对于您的问题:location.search = "width=300";
会将“?width = 300”应用于您的网址。
答案 2 :(得分:0)
你可以使用jQuery,即
来做到这一点$(".thickbox").each(function() {
this.href += "?height=200&width=300";
});
我没有对此进行测试,这可能是错误的,我现在无法测试它,但希望它能指向正确的方向,如果没有其他的话。如果你有厚盒的jQuery,那么你也可以利用它进行操作;)