2013-03-24 178 views
1

出于某种原因,我有我的网页上的iframe:jquery - 合并url参数的最简单方法是什么?

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

而且我在js代码具有可变地址

var address = 'some street'; 

我需要添加一个新的参数,以IFRAME SRC属性,因此它看起来像:

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

祝:

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

    params.merge {:address => address} 
    

    我想在jQuery的是这样的,如果它是更多钞票:

例如合并网址 PARAMS在Ruby on Rails的的那样容易。

回答

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); 
+0

如果你在你的查询字符串'street_address'? – Blender 2013-03-24 08:19:07

+0

对不起,没有得到你。 我要改变的参数是**地址**,用户只能改变它的值,而不能改变它的名字。 – installero 2013-03-24 08:20:59

+0

你的正则表达式也会替换'street_address'的值。就个人而言,我只是将URL参数解析到一个对象中,对其进行修改,然后将其重新转换为查询字符串。 – Blender 2013-03-24 08:22:04

相关问题