jQuery colorbox - 从单击的链接获取 url 参数

发布于 2024-09-29 22:46:17 字数 942 浏览 4 评论 0原文

我正在使用 Colorbox 在 iframe 中加载联系表单。

但是,我希望 Colorbox url 与 html url 不同,以便为 JS 和非 JS 用户提供不同的联系页面。

不过,我确实需要从确切单击的链接中获取 url 参数。

HTML 代码:

<a href="contact?id=XX" class="enquiryForm">

Colorbox 代码:

$(document).ready(function(){

$('.enquiryForm').colorbox({height:600, width:800, iframe:true, href: 'colorboxcontact?id=XX'});

});

其中“contact”是非 JS 页面,“colorboxcontact”是要在 Colorbox iframe 中加载的页面。

如何从 clicked 链接中提取 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);
    });
  });

I am using Colorbox to load a contact form within an iframe.

However, I want the Colorbox url to be different than the html one, to serve up a different contact page for JS and non-JS users.

I do need to get the url parameter from the exact clicked link though.

HTML Code:

<a href="contact?id=XX" class="enquiryForm">

Colorbox code:

$(document).ready(function(){

$('.enquiryForm').colorbox({height:600, width:800, iframe:true, href: 'colorboxcontact?id=XX'});

});

Where 'contact' is the non-JS page and 'colorboxcontact' is the page to be loaded in the Colorbox iframe.

How can I extract the url parameter from the clicked link, and then add it to the 'colorboxcontact' href value in my jQuery call?

* EDIT *

Ok I've arrived at the following but still don't have it working. Can anyone point out where I am going wrong?

$('.enquiryForm').colorbox({
    height:600, 
    width:800, 
    iframe:true, 
      href: $('.enquiryForm').each(function() {
        newhref = 'colorboxcontact' + $(this).attr('href').split("?")[3];
        $(this).attr('href', newhref);
    });
  });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

二手情话 2024-10-06 22:46:17

要获取 url 字符串的特定查询字符串信息,您需要在以下位置找到此函数:

如何获取查询字符串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")
   });
});

To get specific query string info for url string you need this function found at:

How can I get query string values in JavaScript?

slightly modified:

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, " "));
}

so then you will end up with something like this:

$('.dialog-open').each(function() {
   $(this).colorbox({
     height: 600, 
     width: 800, 
     iframe: true, 
     href: "contact?id=" + getParameterByName($(this).attr("href"), "id")
   });
});
帅的被狗咬 2024-10-06 22:46:17

使用 .each() 获取值,如下所示:

$(document).ready(function(){
  $('.enquiryForm').each(function() {
    $(this).colorbox({
      height: 600, 
      width: 800, 
      iframe: true, 
      href: $(this).attr("href")
    });
  });
});

< a href="http://api.jquery.com/each/" rel="nofollow">.each() 使您可以访问每个 当您通过 this 循环它们时。如果您不关心它是否是完全限定的网址,可以将 $(this).attr("href") 替换为 this.href (IE 将完全限定这一点),如下所示:

$(function(){
  $('.enquiryForm').each(function() {
    $(this).colorbox({ height: 600, width: 800, iframe: true, href: this.href });
  });
});

Use a .each() to get the value, like this:

$(document).ready(function(){
  $('.enquiryForm').each(function() {
    $(this).colorbox({
      height: 600, 
      width: 800, 
      iframe: true, 
      href: $(this).attr("href")
    });
  });
});

.each() gives you access to each <a> as you loop over them via this. If you don't care if it's a fully qualified url or not, you can replace $(this).attr("href") with this.href (IE will fully qualify this), like this:

$(function(){
  $('.enquiryForm').each(function() {
    $(this).colorbox({ height: 600, width: 800, iframe: true, href: this.href });
  });
});
懷念過去 2024-10-06 22:46:17

我认为也许一个简单的方法是将 href 设置为返回链接的函数。

$(document).ready(function(){
    $('.enquiryForm').colorbox({
        height:600, 
        width:800, 
        iframe:true, 
        href: function(){
            return $(this).attr('href');
        }
    });
});

I think perhaps a simple approach would be to set the href to a function that returns the link.

$(document).ready(function(){
    $('.enquiryForm').colorbox({
        height:600, 
        width:800, 
        iframe:true, 
        href: function(){
            return $(this).attr('href');
        }
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文