[英]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.