传递2个URL参数?

时间:2011-12-09 03:13:55

标签: javascript jquery url-parameters business-catalyst

我需要在URL中传递2个URL参数。该URL源自电子邮件,用户将单击指向他们链接到我的站点的链接。第一个参数触发页面上的脚本第二个参数是我的CMS将从参数呈现的模块。

第一个参数是:message=1(此参数触发javascript)

第二个参数是:name={tag_recipientfirstname}(我的CMS将呈现模块)

为第一个调用的脚本如下所示:

    <script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
var url = window.location.href;
url = url.toLowerCase();
if (url.indexOf('message=1') != -1) {
        $j("a.message").colorbox({
            open:true
});
   }
$j("a.message").colorbox(); //not related to URL parameter
}); 
</script>

第二个参数在页面上用作:

<div>
<p>{ module_url,name} (again CMS will render this module)</p>
</div>

编辑

我意识到我留下了一些东西:

首先:如何传递这两个参数,以便它们都能如上所列运行?

我使用的CMS是Business Catalyst。

2 个答案:

答案 0 :(得分:3)

//split the `location.search` string at the ampersands
var search_arr = window.location.search.replace('?', '').split('&'),
    len        = search_arr.length,
    get_vars   = {},
    tmp        = [];

//iterate through the key/value pairs and add them to the `get_vars` object
for (var i = 0; i < len; i++) {
    tmp = search_arr[i].split('=');
    get_vars[tmp[0]] = tmp[1];
}

//you can now access your GET variables through the `get_vars` object like: `get_vars.name`

//you can check for the existence of a certain GET variable like this
if (typeof(get_vars['message-1']) != 'undefined') {
    $j("a.message").colorbox({
        open:true
    });
}

这是一个演示:http://jsfiddle.net/aBH8K/1/(http://jsfiddle.net/aBH8K/1/show/?message-1=3与get var一起查看)

一些相关文档:

答案 1 :(得分:1)

您的问题不是关于通用开发,而是一个非常具体的商业产品;我不知道你订购了哪个计划(免费支付?),但无论如何最好是通过他们的支持(另见我的结论)

尽管如此,我会试着让你走上正轨。

您的问题

首先,

电子邮件中的网址

在电子邮件中,您将以某种方式构建一个链接,其中包含您想要的两个参数,正如@Jasper所解释的那样。 这意味着:

http://yourwebsite.com/destination/path/?message=1&name={tag_recipientfirstname}

问号后面的所有内容都是GET query string。 参数由“&amp;”分隔符号

我绝对不知道在BC电子邮件中如何正确构建网址,但我觉得它应该是一个自动化的地方,允许您在需要时指定其他参数。

javascript

你得到的东西仍然有用。这不是很好,您可以使用Jasper的解决方案或任何其他解决方案,例如How can I get query string values in JavaScript?

除非你想让它更好,更强大,否则无所事事。

业务催化剂(页面)

通常在CMS中有办法检索获取参数。经常像

{ GET.param_name }

后退一步

我不是卑诗省的专家,但我觉得你正在为可能已经出炉的东西采取复杂的道路。

我再次建议你进入他们的support section(尽管我必须说这是相当混乱的!)并尝试了解实现目标的最佳方式。总是有很多方法可以给可怜的猫皮肤。 如果您在计划中获得支持,那么一定要按照这种方式进行,并尝试解释您的目标,而不是如何实现您认为最好的技术解决方案!