我目前在附属网站上工作。我在 jQuery 中制作了一个脚本,在悬停时显示销售页面(没有成员(member)链接),但是当您单击它时,它会将我的成员(member)链接添加到链接的开头。然后我的网络将他们重定向到所需的页面。
编辑:为了澄清,我想说我是在谈论悬停在链接上
现在,如果您右键单击它,将打开一个菜单,您可以单击“复制链接”。这会将“xxx”复制到:
<a href="xxx">Example</a>
没有我的成员(member)链接。如何让“复制链接”按钮复制 a 标签中 href 之外的另一个链接?有可能吗?
现在我通过在我的代码开头使用它来完全避免它:
.on("click contextmenu", function(){};
给你一个当前代码的例子,它通过监听点击一个特定类的标签来工作,然后它检查标签中的 href 是否包含一些文本,如果它包含该文本,它会这样做:
window.location.href = affiliatelink + link;
如果没有,它会这样做(如果我没有该产品的成员(member)链接):
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;
}
});});
最佳答案
假设我正确理解了您的问题,如果您在将成员(member)代码附加到链接时进行更改,则可能会解决。
“复制链接地址”上下文菜单快捷方式将复制链接标记的 href
属性中的任何内容。那么,如果您将该属性的值设置为您的成员(member)链接 + 原始链接的文本呢?您将不再需要在点击处理程序中执行此操作;它会“正常工作”并且会支持这两种情况。
像这样的东西可能会成功:
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;
}
});});
关于javascript - 更改右键单击 "Copy link"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833933/