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

问题描述 投票:2回答:6

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

我试过这个:

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

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

javascript html statusbar
6个回答
11
投票

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


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>

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


1
投票

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

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

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


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
投票

您可以使用javascript为您的链接执行此操作:

这是how

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

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

正如尼克克拉弗所说,这并不适用于所有情况(控制点击,中键点击等),但应该适合你,因为你没有在javascript链接上转发。


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

© www.soinside.com 2019 - 2024. All rights reserved.