我有一个简单的问题,如何在浏览器的状态栏中隐藏链接。
我尝试过这个方法:
<a href="http://www.sell.com/?referrer=225"
onMouseOver="window.status='http://www.sell.com';
return true" onMouseOut="window.status=''">Click here</a>
(摘自教程) 但是它不起作用,如果有人能帮助我,我会非常高兴!;-)
我有一个简单的问题,如何在浏览器的状态栏中隐藏链接。
我尝试过这个方法:
<a href="http://www.sell.com/?referrer=225"
onMouseOver="window.status='http://www.sell.com';
return true" onMouseOut="window.status=''">Click here</a>
(摘自教程) 但是它不起作用,如果有人能帮助我,我会非常高兴!;-)
目前在浏览器中你无法这样做,这是一件好事。这会对钓鱼攻击造成很大帮助,让链接伪装起来。
href
,而不是你的 onclick
(尽管这因浏览器而异,我正在使用 Chrome)。 - Nick Craver以下是一些代码,可以隐藏浏览器状态栏区域中的原始链接文本
请注意:不确定它适用于哪些浏览器,但在IE9中运行良好
<a href="javascript:void(0);" onclick="location.href='http://www.google.com';return false;">If You Put Your Mouse Over This Text You Won't See Link In Status Bar Area</a>
javascript:void(0);
。由于您要求这样做是为了隐藏关联链接,可能有更好的方法。
更明智的做法是循环遍历所有链接,例如在广泛的$("a.out")
选择器下,然后获取并存储它们的真实href到元素存储中,用虚拟的一个替换它(如果必要,还有title属性)。
然后,您可以附加一个点击事件处理程序来停止默认事件,读取原始href并将其设置为location.href,从而对所有启用js的人隐藏链接。
例如,在MooTools中的代码:
(function() {
var links = document.getElements("a.out");
links.each(function(el) {
// save original
el.store("href", el.get("href"));
// replace it.
el.set("href", el.get("data-link"));
el.addEvents({
click: function(e) {
e.stop();
// console.log(e);
document.location.href = this.retrieve("href");
},
contextmenu: function(e) {
e.stop();
// do something on right click so we dont get caught
alert("hi");
}
});
});
})();
这在这个标记上运行良好:
<a href="http://www.energyhelpline.com/energy/rg_home.aspx?aid=107" rel="nofollow" class="out" title="Enegry savings" data-link="http://www.energyhelpline.com/">Swap Energy Provider</a><br />
<a href="http://www.moneysupermarket.com/link.asp?Source=MSE&Section=utils" rel="nofollow" class="out" title="Money supermarket" data-link="http://www.moneysupermarket.com/">Money Supermarket</a>
数据链接包含我们向最终用户展示的内容。
window.open
:这取决于浏览器如何处理它们,例如,我告诉我的浏览器应该总是在新标签页中打开一个新窗口。使用 shift+单击,我总是打开一个新窗口,而不管此设置如何。如果由于这种 JS 行为而打开了一个新选项卡,那将非常令人恼火。 - Marcel Korpel您可以使用JavaScript设置状态栏的文本,使用window.status
属性。例如:http://www.htmlite.com/JS017.php
如果您真的需要在浏览器中禁用状态栏,您可以获取开源浏览器代码库的副本,删除所有状态栏的代码,并将其重新分发给您的用户,但我怀疑这不是您想要的。
为什么您需要隐藏状态栏中的链接?不想暴露URL的安全问题可以用另一种方式解决。
您可以使用JavaScript为您的链接完成此操作:
以下是如何:
function goToBing() {
window.location.href = "http://bing.com";
}
并且
<a href="http://google.com" onclick="goToBing();return false;">Link to Google</a>
这里有一种使用javascript + jQuery的方法,可以与ctrl点击、shift点击、中键点击等配合使用。它确实会破坏右键点击,但如果目标是隐藏链接,我想这不是什么大问题。
不过,我对你使用此代码所造成的后果概不负责,我只是出于好玩而已,但它看起来确实很邪恶。
JS:
$(document).ready(function() {
$('a').each(function() {
var address = $(this).attr('href');
var element = $(this).contents().unwrap().wrap('<div/>').parent();
element.data("hrefAddress", address).addClass("link");
element.click(function() {
var newWindow = window.open(element.data("hrefAddress"), '_blank');
newWindow.focus();
});
});
});
CSS:
.link {
color: #00f;
text-decoration: underline;
cursor: pointer;
}
.link:hover {
color: #00a;
}
HTML:
<div>
<a href="http://www.facebook.com">Facebook</a>
<a href="http://www.bing.com">Google</a>
<a href="http://www.yahoo.com">Yahoo</a>
<a href="http://stackoverflow.com">Stack Overflow</a>
</div>
{{链接1:JS Fiddle}}