我正在使用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")
   });
});

09-25 18:32