Javascript 更改基于目的地将URL参数附加到链接的方式
我的公司正在提供取消绑定的PPC登录页(在子域上),然后链接回我们的网站。我们使用以下代码将AdWords gclid变量附加到传出链接:Javascript 更改基于目的地将URL参数附加到链接的方式,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,我的公司正在提供取消绑定的PPC登录页(在子域上),然后链接回我们的网站。我们使用以下代码将AdWords gclid变量附加到传出链接: $(document).ready(function() {var params = window.location.search.replace(/\+/g,'%20'); var button = $('a').each( function(i) {this.href = this.href + params;});}); 当Gclid被附加到已经有
$(document).ready(function() {var params = window.location.search.replace(/\+/g,'%20'); var button = $('a').each( function(i) {this.href = this.href + params;});});
当Gclid被附加到已经有参数的URL(比如我们的签出表单)时,问题就出现了。最终得到的URL如下所示:
domain.com/checkout?EventID=15546?Gclid=jdkI324kd
我想知道是否有一种方法可以将Glid的“?”更改为“&”,用于已经有参数的特定URL,同时保留其他URL使用“?”的现有功能
谢谢
编辑:似乎有一些重定向正在进行,这是href如何查找相关链接的:
只需自己更换即可:
$(document).ready(function() {
var params = window.location.search.replace(/\+/g,'%20');
var button = $('a').each( function(i) {
if (this.href.indexOf('?') == -1) {
this.href = this.href + params;
} else if (params.length) {
this.href = this.href + '&' + params.substr(1);
}
});
});
编辑:您是否知道您正在用一个“%20”替换后续空格?只需自己替换即可:
$(document).ready(function() {
var params = window.location.search.replace(/\+/g,'%20');
var button = $('a').each( function(i) {
if (this.href.indexOf('?') == -1) {
this.href = this.href + params;
} else if (params.length) {
this.href = this.href + '&' + params.substr(1);
}
});
});
编辑:您知道您正在用一个“%20”替换后续空格吗?Hm,我尝试使用上面的修复程序,但GClid根本没有通过,因此目标URL只包含购物车参数。我有一个输入错误(
”&“.params.substr(1)
应该是”&+params.substr(1)
),对于其他人来说,它应该起作用:是的,就是这样。可以确认上面的代码片段像一个符咒!这是PHP(字符串连接用点完成)和JavaScript(字符串连接用加号完成)中编程的问题。这不是我第一次犯这样的错误;)嘿,彼得,我想继续说,空间有什么问题吗?这是我从Unbound获得的代码,因此我不确定问题出在哪里(如果有)。嗯,我尝试使用上面的修复程序,但GClid根本没有通过,因此目标URL只包含cart参数。我有一个输入错误(”&“.params.substr(1)
应该是”&+params.substr(1)
),对于其他人来说,它应该起作用:是的,就是这样。可以确认上面的代码片段像一个符咒!这是PHP(字符串连接用点完成)和JavaScript(字符串连接用加号完成)中编程的问题。这不是我第一次犯这样的错误;)嘿,彼得,我想继续说,空间有什么问题吗?这是我从unbound得到的代码,所以我不确定问题是什么(如果有)。