javascript - 网站在站内链接中重复查询字符串参数

标签 javascript

使用 Google 网址跟踪代码时,我在使用 IsaFYI.com 时遇到问题。

例如,如果访问页面:http://isafyi.com/mom-of-two-covers-college-expenses-with-isagenix-business/then点击故事底部的识别链接,他们将被带到页面http://isafyi.com/category/recognition/ 。如果点击促销链接,他们将被带到页面 http://isafyi.com/sales-promotions/ .

However, if tracking code is placed on the first page, (in this case, ?utm_source=test&utm_medium=test&utm_campaign=test,) the first url looks like this:

http://isafyi.com/mom-of-two-covers-college-expenses-with-isagenix-business/?utm_source=test&utm_medium=test&utm_campaign=test

如果单击此链接,然后单击页面底部的识别链接,他们将被带到

http://isafyi.com/recognition/?utm_source=test&utm_medium=test&utm_campaign=test?utm_source=test&utm_medium=test&utm_campaign=test

If you look carefully, you can see that the tracking code is now on the link twice:

http://isafyi.com/recognition/
?utm_source=test&utm_medium=test&utm_campaign=test
?utm_source=test&utm_medium=test&utm_campaign=test

如果在此页面上单击“促销”链接,他们将被带到:

    http://isafyi.com/salespromotions/utm_source=test&utm_medium=test&utm_campaign=testutm_source=test&utm_medium=test&utm_campaigtestutm_source=test&utm_medium=test&utm_campaign=testutm_source=test&utm_medium=test&utm_campaign=test

加倍的代码又加倍了。每次点击内部链接时,该数量都会呈指数级增长。

如果用户现在单击指向外部站点的链接,则会被服务器拒绝。显示的消息是:

请求的 URL 被拒绝。请咨询您的管理员。

您的支持 ID 是:XXXXXXXXXXXXXXXXXXXXX

最佳答案

您有一个 javascript 文件“isafy.js”。那里有一段代码:

var curUrl = window.location.href; // Gets the url of the current page
    var qs = curUrl.slice(curUrl.indexOf('?utm_')); // Checks url for Google Analytics Query string and if it exists, it is stored in variable 'qs'

    // If 'qs' has 1 character or less it is cleared out
    if(qs.length <= 1){
        qs = ""
    }

    // Goes through every a link on the page and appends the Google query string to every link
    $('a').each(function() {
        var href = $(this).attr('href');
        href += qs;
        $(this).attr('href', href);
    });

此代码添加 utm 字符串,但不检查参数是否已附加。因此,每次点击链接时,您都会获得添加到网址的参数的另一个实例(因此 Crayons 评论是准确的)。

我什至不知道这是做什么的 - 对于 Google Analytics(分析)来说,只要在着陆页上设置参数就足够了。如果您需要页面中其他位置的 utm 值,您应该考虑使用 cookie,如果不需要,请删除这段脚本。

关于javascript - 网站在站内链接中重复查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24194755/

相关文章:

javascript - 如何断言属性的呈现值?

javascript - 如何让很多词都触发同样的事情

javascript - Eonasdan Bootstrap Datetimepicker 日历不可见

javascript - 如何使用热键检查 jquery 中的单选按钮

Javascript - 使用函数来验证 div 的内容是否与其他内容匹配?

javascript - 单击列表项无法显示下拉内容

javascript - jQuery radio input .on ('change' ) 触发了两次

javascript - 传单标记的弹出窗口淡入和淡出

javascript - 如何解决模块未找到: Can't resolve '@babel/runtime/core-js/map' in Material-UI

javascript - 使用 Fabric js 在 Canvas 上绘制圆形和矩形