我目前正在联盟网站上工作。我在jQuery中制作了一个脚本,在悬停时显示销售页面(没有会员链接),但是当你点击它时,它会将我的会员链接添加到链接的开头。然后我的网络将它们重定向到所需的页面。
编辑:澄清一下,我想说我正在谈论将鼠标悬停在链接上
现在,如果右键单击它,将打开一个菜单,您可以单击“复制链接”。这将复制“xxx”:
<a href="xxx">Example</a>
哪个没有我的会员链接。如何使“复制链接”按钮复制另一个链接而不是标签中的href?它甚至可能吗?
现在我通过在代码的开头部分完全避免它:
.on("click contextmenu", function(){};
为了给你一个当前代码的例子,它通过监听具有特定类的标签的点击来工作,然后检查a标签中的href是否包含一些文本,如果它包含该文本,它会这样做:
window.location.href = affiliatelink + link;
如果没有,则执行此操作(如果我没有该产品的会员链接):
window.location.href = link;
那么,我的问题是否可以解决 - 或者我必须这样做,就像我正在做的那样?
编辑2:我必须提供我的代码
$(document).ready(function(){
$(".class").on("click contextmenu", function(){
var link = this.href;
var partner = "https://affiliatelink.com/?url=";
if(link.indexOf("partnername") != -1){
window.location.href = partner + link;
} else {
window.location.href = link;
}
});});
答案 0 :(得分:1)
假设我正确理解了您的问题,如果您在将关联代码附加到链接时进行更改,则可能会解决问题。
“复制链接地址”上下文菜单快捷方式将复制链接标记的href
属性中的任何内容。那么,如果您将该属性的值设置为您的会员链接+原始链接的文本,该怎么办?您不再需要在单击处理程序中执行此操作;它会“正常工作”并支持这两种情况。
这样的事情可能会起到作用:
var links = [].slice.call(document.querySelector('.your-class'));
links.forEach(function(link){
link.href = affiliateLink + link.href;
});
您不再需要点击处理程序,它支持与链接交互的两种情况。
编辑:更新了您的代码示例。
$(document).ready(function(){
$(".class").each(function(){
var link = this.href;
var partner = "https://affiliatelink.com/?url=";
if(link.indexOf("partnername") != -1){
this.href = partner + link;
}
});});