要隐藏链接的真实目的地,我使用以下代码:
<a href="http://example.com" onclick="window.location='http://url-i-want-to-hit.com/'; return false;">Click me</a>
但是,如果我右键单击然后在新窗口中打开,它会转到锚点 href 标记中指定的 URL。我希望它转到 JavaScript 中指定的 URL。
有没有办法做到这一点?
你只需要一个 mousedown 处理程序来伪造它们......
<a href="http://example.com"
onmousedown="this.href2 = this.href;
this.href = 'http://url-i-want-to-hide.com/';"
onmouseout="if(this.href2) this.href = this.href2;">Test</a>
但是,如果我右键单击然后在新窗口中打开,它将转到锚点 href 标记中指定的 url。我希望它转到 javascript 中指定的 url。
不,但是您可以在文档加载后使用 JS 将链接 href 设置为隐藏的 URL(或者在链接的
onfocus
和 onhover
事件中,尽管这感觉相当笨拙和不完整)。
<a onfocus="this.href='hidden_url'" .....>
这是谷歌用来计算从搜索结果页面传出的链接的方式。
你不能这样做。右键单击使用真正的锚点,而您正在使用 javascript 覆盖锚点的点击功能。我们有点欺骗,不是吗?
如何将真实的 url 存储在数据库中并在 php 中调用它们?
www.yourwebsite.com/url.php?id=3
url.php // 类似
$query = "SELECT * FROM `urls` WHERE `id` = " . intval($_GET['id']);
$row = mysqli_fetch_assoc($query);
header ("location: $row['url']");
编辑:也许我不清楚……对不起。使用“#”会阻止他们在新窗口中打开不同的页面。这可能不适用于您的情况,我不知道您是否试图通过隐藏 URL 来通过 SEO 完成某些事情。除了 href 中的“#”之外,我的解决方案实际上与您目前正在做的相同,我只是更喜欢将 window.location 包装在一个函数中……个人偏好。
<a href="#" onclick="SendToUrl(); return false;"">Click Here</a>
<script language="javascript">
function SendToUrl(){
window.location='http://url-i-want-to-hide.com/'
}
</script>