更改状态栏中的链接

Posted

技术标签:

【中文标题】更改状态栏中的链接【英文标题】:Change link in status bar 【发布时间】:2014-04-19 22:00:25 【问题描述】:

我正在寻找一种方法来更改浏览器状态栏中的链接,类似于 google 和 yahoo 用来显示其搜索结果的方法。这是我的示例代码

<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
 </head>
<body>

<script type="text/javascript">
$(document).ready(function() 
  $('a').attr('orig_href', function()  return $(this).attr('href') )
    .attr('href', 'http://www.google.com')
    .click(function() 
        window.location.href = $(this).attr('orig_href');
        return false;
    );
);
</script>

  <p id="hello">Hello World</p>

  <div><a href="http://www.***.com/">Link 2</a></div>
  <div><a href="http://meta.***.com/">Link 3</a></div>
</body>
 </html>

当鼠标悬停在链接上时,状态栏一直是http://www.google.com。但是,这不是真正的网址。当我们左键单击一个链接时,浏览器将带入真正的 url(例如,***.com)。这是我所期望的。

问题是,当我们右键单击并打开链接到新标签页时,浏览器会将我们带到错误的 url,即 google.com。

谁能指出应该怎么做,以便在新标签页中打开时,它会转到真正的 url (***.com)?

非常感谢。

【问题讨论】:

How do Google and Yahoo replace the URL in the browser status bar? 的可能重复项 @Ultra 我确实阅读了该链接,但由于我的理解有限,我无法得到任何对这个问题有用的东西。谢谢 【参考方案1】:

试试这个:

<a href="http://meta.***.com/" onmouseover="$(this).attr('href', 'http://www.google.com')" onmousedown="$(this).attr('href', 'http://meta.***.com/')">Link 4</a>

也许不是最好的解决方案,但这项工作(不幸的是不在 JSfiddle 上)。

【讨论】:

你太棒了!它在我的 Firefox 和 Google chrome 上完美运行。非常感谢【参考方案2】:

为什么需要 JQuery 来覆盖 href 属性?删除脚本标签,你应该很高兴!

【讨论】:

感谢 Martins 回答我的问题。否决票不是来自我,只是为了澄清。 MarOnii 的解决方案对我有用。再次感谢您:)【参考方案3】:
$(document).ready(function() 
  $('a').attr('orig_href', function()  return $(this).attr('href') )
    .attr('href', 'http://www.google.com')
    .mousedown(function() 
        $(this).attr('href', $(this).attr('orig_href'));
        return false;
    );
);

好的,试试这个,抱歉我误解了这个问题。

【讨论】:

当我更换它时,问题仍然存在。谢谢。

以上是关于更改状态栏中的链接的主要内容,如果未能解决你的问题,请参考以下文章

谷歌和雅虎如何替换浏览器状态栏中的 URL?

Android:是不是可以更改 Android Lollipop 状态栏中图标的颜色

XCode 在呼叫状态栏中更改视图

如何在状态栏中隐藏 url 地址? [复制]

Android:如何在状态栏中获取电池图标资源 ID 或完整文件路径/名称?

删除在状态栏中显示超链接的超链接/鼠标悬停按钮