如何隐藏浏览器中的状态栏?

时间:2010-11-30 14:53:31

标签: javascript html statusbar

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

我试过这个:

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

(取自教程) 但它不起作用,如果有人会帮助我,我会很开心! ; - )

6 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:2)

由于您要求隐藏联属链接,因此可能有更好的方法。

在广泛的$("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>

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分: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);

答案 4 :(得分:0)

您可以使用javascript作为链接:

这是how

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

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

正如Nick Craver所说,这在所有情况下都不起作用(控制点击,中键点击等)但是应该适合你,因为你没有在javascript链接上中继

答案 5 :(得分:0)

这是javascript + jQuery的一种方式,可以使用ctrl点击,移动点击,中间点击等。它会突破右击,但如果目标是隐藏链接,我猜这不是什么大问题。

尽管你对此做了什么,但我不承担任何责任,我这样做主要是为了好玩,但它看起来确实很邪恶。

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