我需要在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。
答案 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一起查看)
一些相关文档:
window.location
:https://developer.mozilla.org/en/DOM/window.location 答案 1 :(得分:1)
您的问题不是关于通用开发,而是一个非常具体的商业产品;我不知道你订购了哪个计划(免费支付?),但无论如何最好是通过他们的支持(另见我的结论)
尽管如此,我会试着让你走上正轨。
首先,
在电子邮件中,您将以某种方式构建一个链接,其中包含您想要的两个参数,正如@Jasper所解释的那样。 这意味着:
http://yourwebsite.com/destination/path/?message=1&name={tag_recipientfirstname}
问号后面的所有内容都是GET query string。 参数由“&amp;”分隔符号
我绝对不知道在BC电子邮件中如何正确构建网址,但我觉得它应该是一个自动化的地方,允许您在需要时指定其他参数。
你得到的东西仍然有用。这不是很好,您可以使用Jasper的解决方案或任何其他解决方案,例如How can I get query string values in JavaScript?
除非你想让它更好,更强大,否则无所事事。
您通常在CMS中有办法检索获取参数。经常像
{ GET.param_name }
我不是卑诗省的专家,但我觉得你正在为可能已经出炉的东西采取复杂的道路。
我再次建议你进入他们的support section(尽管我必须说这是相当混乱的!)并尝试了解实现目标的最佳方式。总是有很多方法可以给可怜的猫皮肤。 如果您在计划中获得支持,那么一定要按照这种方式进行,并尝试解释您的目标,而不是如何实现您认为最好的技术解决方案!