1

我需要在 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。

4

2 回答 2

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查看)

一些相关文档:

于 2011-12-09T03:20:16.290 回答
1

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

不过,我会尽量让你走上正轨。

你的问题

第一的,

电子邮件中的网址

在电子邮件中,您将不得不以某种方式使用@Jasper 解释的您想要的两个参数建立一个链接。这意味着类似:

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

问号之后的所有内容都是GET 查询字符串。参数用“&”符号分隔。

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

javascript

你得到的仍然有效。这不是很好,您可以使用 Jasper 的解决方案或任何其他解决方案,例如如何在 JavaScript 中获取查询字符串值?

除非你想让它变得更好、更健壮,否则什么都不做。

商业催化剂(页面)

通常可以在 CMS 中检索获取参数。通常像

{ GET.param_name }

退一步

我不是 BC 方面的专家,但我感觉你正在为可能已经融入其中的东西走一条复杂的道路。

我再次建议您进入他们的支持部分(尽管我必须说这很令人困惑!)并尝试了解实现目标的最佳方法是什么。总是有很多方法可以剥掉一只可怜的猫。如果您在计划中获得支持,请务必这样做并尝试解释您的目标是什么,而不是如何实现您认为好的技术解决方案!

于 2011-12-09T11:59:56.970 回答