繁体   English   中英

在URL中写入具有查询值的锚文本

[英]Write Anchor Text with query value in URL

我已经在这个论坛上进行了广泛的搜索,并能够(至少我认为)提出了执行此操作所需的一些代码:

主链接:testsite.com/site1/?ADSET=1

我想将该值用于ADSET(1)并将其添加到锚链接中,如下所示:

nextsite.com/?tid=1

为此,我得到了以下代码

首先,我在HEAD之间有这个

function getParameterByName(name, url) {
if (!url) {
  url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));

}

然后在体内(这是一个WP站点)

var adset = getParameterByName('ADSET');
var link = "http://finalsite.com/click?tid=" + adset;

document.write('<a href="' + link + '"> HYPERLINK TEXT</a>');

问题:

为了进行测试,我手动在URL中设置了ADSET = X只是为了获取变量(没有办法查看它是否实际上是在写变量adset)

但是锚文本应该是空白的。

无法弄清楚为什么或如何解决它。

有人知道吗? 如果有更好的方法可以做到(并且不使用document.write)甚至更好。

没有审查那些正则表达式,但是在这里您需要进行一些改进

 <script> function getParameterByName(name, url) { if (!url) { url = window.location.href; } //name = name.replace(/[\\[\\]]/g, "\\\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) { console.log('!results => return null'); return null; } if (!results[2]) { console.log('!results[2] => return ""'); return ''; } var r = decodeURIComponent(results[2].replace(/\\+/g, " ")); console.log('returning: "' + r + '"'); return r; } </script> <p>THEN THIS in the body ( this is a WP site ) <br/> <a href="#" id="my-anchor">HYPERLINK TEXT</a> <script> var adset = getParameterByName('ADSET'); var link = "http://finalsite.com/click?tid=" + adset; document.getElementById('my-anchor').href = link; </script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM