jquery - 合并url params最简单的方法是什么?

时间:2013-03-24 08:16:13

标签: jquery uri

出于某种原因,我的页面上有一个iframe:

<iframe src="/widget?id=2"/>

我的js代码中有变量地址

var address = 'some street';

我需要为iframe src属性添加一个新参数,以便它看起来像:

<iframe src="/widget?id=2&address=some%20street"/>

我希望:

  • 不要打扰地址变量的格式:它不仅可以包含空格,还可以包含逗号,分号等(以某种方式由用户插入) ;
  • 不要做丑陋的字符串操作,总是难以阅读;
  • 能够处理多个参数(不仅仅是地址) 更优雅的方式。

例如,在 Ruby on Rails 中合并 url 参数就像以下一样简单:

params.merge {:address => address}

如果它是可行的,我想在jQuery中使用这样的东西。

1 个答案:

答案 0 :(得分:0)

我目前的(粗略和快速)实施是:

var src = $('iframe').attr('src');
var new_src = src.replace(/([?&])address=[^$&]*/,'$1address='+encodeURI(address));;
if (src == new_src) new_src = src+'&address='+encodeURI(address);
$('iframe').attr('src',new_src);