A有一个链接:
<a href="http://domain.com/?=register">Register</a>
我想隐藏机器人的网址。我知道机器人通常没有启用Javascript,所以我在考虑这样的方法。在我的HTML代码中,我将URL反转:
<a href="retsiger=?/moc.niamod//:ptth">Register</a>
然后使用Javascript,我将其反转,以便用户看到正确的URL。我怎样才能做到这一点?可比性显然是必不可少的。
对于未启用JS的用户,我只是显示需要JS的消息。
答案 0 :(得分:3)
你可以用这段脚本做你想要的......
$("a").each(function() {
var href = $(this).attr("href");
href = href.split("").reverse().join("");
$(this).attr("href", href);
});
它将href值转换为一个数组,该数组可以通过Array.reverse()
函数轻松反转,然后再次连接它以返回一个字符串。
显然将它放在文档就绪处理程序中,如您的示例所示。
这是一个jsfiddle示例......
属性与属性
在这种情况下,重要的是我们使用href属性值,而不是href属性。这样做的原因是,如果获得href属性,则将其转换为绝对URL。在此示例的情况下,href值
retsiger=?/moc.niamod//:ptth\
会变成
http://domain.com/retsiger=?/moc.niamod//:ptth
通过使用属性值,我们使用创建链接时使用的值。
答案 1 :(得分:1)
<script type="text/javascript">
$(document).ready(function() {
$('a[data-href]').attr('href', $(this).attr('data-href'));
});
});
</script>
以下列方式构建您的链接。
<a href="" rel="nofollow" data-href="http://domain.com/?=register">register</a>
一旦Dom准备就绪,将加载所有hrefs。所以在机器人的狩猎时间,href是空的。
或强>
<a href="" rel="nofollow" id="reg">register</a>
和jquery
<script type="text/javascript">
$(document).ready(function() {
$('#reg').attr('href', 'http://domain.com/?=register');
});
});
</script>
答案 2 :(得分:0)
如果机器人专门寻找&#34; href&#34;锚标记的一部分,然后你可以用不同的方式欺骗它们。此代码是一个HTML构造结构,当浏览器显示它时看起来像普通链接,并且像普通链接一样,但不是普通链接,因为它调用JavaScript函数来做链接通常做的事情。 :
<a onclick="linkfunc(1);"
style="color:#0000ff;text-decoration:underline;cursor:pointer;">
A Page Being Linked</a>
在您的JavaScript代码块中,您将完成剩下的工作:
function linkfunc(wch)
{ var h="http://", r="?=register";
window.name="ThisPage";
switch (wch)
{ case 1:
window.open(h+"domain.com/"+r, "ThisPage");
break;
case 2:
//window.open(whereever you want linkfunc(2) to go, "ThisPage");
break;
}
return;
}
答案 3 :(得分:0)
您也可以根本不将链接文本放在标记中并从Ajax加载它。此外,只有在特定用户事件发生且机器人不会触发时,您才能将其置于标记中。
如果你使用过这样的东西:
$(function () {
$(document).on("mousemove", function (e, data) {
//Make ajax call to get link
var linkTarget = "http://www.test.com/register";
$(".dyn-link").prop("href", linkTarget);
$(".dyn-link").text("Register");
console.log("fired");
//Remove the event handler
$(document).off("mousemove", null);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<a class="dyn-link" href=""></a>