我正在使用Colorbox在iframe中加载联系表单。
但是,我希望Colorbox的网址不同于html的网址,以便为JS和非JS用户提供不同的联系页面。
我确实需要从确切点击的链接中获取url参数。
HTML代码:
<a href="contact?id=XX" class="enquiryForm">
颜色框代码:
$(document).ready(function(){
$('.enquiryForm').colorbox({height:600, width:800, iframe:true, href: 'colorboxcontact?id=XX'});
});
其中,“ contact”是非JS页面,而“ colorboxcontact”是要在Colorbox iframe中加载的页面。
如何从单击的链接中提取url参数,然后将其添加到我的jQuery调用中的“ colorboxcontact” href值中?
*编辑*
好的,我到达以下内容,但仍然无法正常工作。谁能指出我要去哪里了?
$('.enquiryForm').colorbox({
height:600,
width:800,
iframe:true,
href: $('.enquiryForm').each(function() {
newhref = 'colorboxcontact' + $(this).attr('href').split("?")[3];
$(this).attr('href', newhref);
});
});
最佳答案
要获取URL字符串的特定查询字符串信息,您需要在以下位置找到此函数:
How can I get query string values in JavaScript?
稍作修改:
function getParameterByName(url, name)
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec(url);
if( results == null )
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
因此,您最终将得到如下结果:
$('.dialog-open').each(function() {
$(this).colorbox({
height: 600,
width: 800,
iframe: true,
href: "contact?id=" + getParameterByName($(this).attr("href"), "id")
});
});