2010-11-30 130 views
2

我有一个简单的问题,我如何隐藏浏览器状态栏中的链接。如何隐藏浏览器中的状态栏?

我试过这个:

<a href="http://www.sell.com/?referrer=225" 
    onMouseOver="window.status='http://www.sell.com'; 
       return true" onMouseOut="window.status=''">Click here</a> 

(从教程两者) 但它不工作,如果有人能帮助我,我会非常高兴! ;-)

+0

你可以做ID,如果你允许它你浏览器。你有哪个浏览器? – 2010-11-30 14:56:05

回答

11

你不能(至少在目前的浏览器中),这是一件好事。这将有助于网络钓鱼攻击大大掩饰链接。

+0

好的,谢谢你的回答:) – 2010-11-30 15:02:57

+0

是的,你可以使用javascript来做到这一点。看到这个例子:http://jsbin.com/obira4/4/edit – 2010-11-30 15:12:48

+2

@Georg - 这不是真的这样做,Ctrl + Click,Shift + Click等不工作...这*模拟*点击,但它是不一样的。例如,中间点击仍然会打开`href`,而不是你的'onclick`(尽管这因浏览器而异,我使用的是Chrome)。 – 2010-11-30 15:14:26

1

您可以使用javascript和window.status属性来设置状态栏的文本。例如。 http://www.htmlite.com/JS017.php

如果您确实需要在浏览器中禁用状态栏,您可以获得开源浏览器代码库的副本,删除状态栏的所有代码并将其重新分发给用户,但我怀疑这就是你的意思/需要。

为什么你需要隐藏状态栏中的链接?不想公开URL的安全问题可以用另一种方式处理。

这里的how

function goToBing() { 
    window.location.href = "http://bing.com"; 
} 

<a href="http://google.com" onclick="goToBing();return false;">Link to Google</a> 

尼克Craver说,这并不能在所有环境下工作

0

您可以使用JavaScript,请链接做到这一点(控制点击,中间点击等),但应该为你工作,因为你没有继电器在JavaScript链接。

1

由于您要求这样做以隐藏关联链接,因此可能会有更好的方法。

它循环遍历所有链接(比如说,在广泛的$("a.out")选择器下,然后获取并存储它们的真实href到元素存储中,替换为一个虚拟元素(以及标题属性,如果必须),然后附加一个单击事件处理程序,停止默认事件,读回原始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> 

数据链接包含我们向最终用户展示的内容。

1

下面是一些代码,将隐藏在浏览器状态栏区域的原始链接胎面文本

请注意:不知道哪些浏览器它的工作原理上,但在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);

0

下面是一个使用ctrl + click,shift点击,中间点击等工作的javascript + jQuery的方法。目标是隐藏链接我想这不是什么大不了的事。

我采取任何责任无论你用这虽然做什么,我这样做主要是为了好玩,但它确实看起来很邪恶。

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>​ 

JS Fiddle