【问题标题】:Append query strings through links, buttons, menus etc通过链接、按钮、菜单等附加查询字符串
【发布时间】:2021-07-09 19:12:21
【问题描述】:

我在我的 Wordpress 网站上使用这个 javascript 已经有一段时间了,直到一两天前它一直运行良好,我没有更改任何会影响它的东西。它在我的测试站点上仍然可以正常工作,所以我无法弄清楚它为什么停止工作。我正在寻找问题的任何解决方案。基本上,代理商会获得一个唯一的查询字符串,因此当他们的客户访问该网站时,他们将获得佣金。当访问者从一个页面转到另一个页面或单击引用按钮(转到外部门户)时,查询字符串将页面传递到页面并传递到外部门户。 site.com/?group=agent123 - 正在加载脚本。 Firefox 错误是 href 未定义。 Chrome 显示有关 indexOf 的错误,下面指出的行修复了错误但没有使脚本工作...我不是脚本编写者,所以我无法弄清楚。

var index = window.location.href.indexOf('?') 
    if(index != -1){
        var querystring = window.location.href.slice(index + 1)
        var tagA = document.getElementsByTagName('a');

    // this next line fixed the error hence allowing other 
    // broken scripts after this to work again but script does not work 
    // for appending the query strings...   
if (href !== undefined)
            
        for(var i = 0; i < tagA.length; i++){
            var href = tagA[i].getAttribute('href');

            href += (href.indexOf('?') != -1)? '&' : '?';
            href += querystring;

            tagA[i].setAttribute('href', href);
            
        
        }
    }

【问题讨论】:

    标签: javascript wordpress query-string


    【解决方案1】:

    在变量声明后将if (href !== undefined)移动到for(var i = 0; i &lt; tagA.length; i++){中。

    for(var i = 0; i < tagA.length; i++){
            var href = tagA[i].getAttribute('href'); 
            if (href !== undefined) {
                   href += (href.indexOf('?') != -1)? '&' : '?';
                   href += querystring;
    
                   tagA[i].setAttribute('href', href);
            }
    
        
        }
    }
    

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多