禁用浏览器状态栏文本

2024-04-28

背景

现代浏览器取消了经典的状态栏,而是在窗口底部绘制一个小工具提示,在悬停/焦点时显示链接目标。

下面的屏幕截图说明了这种行为的示例(在我的例子中是不需要的):


问题

  1. 有没有一种可移植的方法来禁用这些工具提示?
  2. 在我的特殊情况下,我是否遗漏了这样做的任何明显缺点?
  3. 我的尝试(见下文)是实现这一目标的合理方法吗?

推理

我正在开发一个 Intranet Web 应用程序,并且希望针对某些特定于应用程序的操作禁用此行为,因为坦率地说,https://server/#到处看起来都令人眼花缭乱,而且很引人注目,因为在某些情况下,我的应用程序会在该位置绘制自己的状态栏。


我的尝试

我不是一名网络开发人员,因此我在该领域的知识仍然相当有限。

无论如何,这是我对 jQuery 的尝试:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Target Tooltip Test</title>
    <style>
      a, span.a {
        color: #F00;
        cursor: pointer;
        text-decoration: none;
      }

      a:hover, span.a:hover {
        color: #00F;
      }

      a:focus, span.a:focus {
        color: #00F;
        outline: 1px dotted;
      }
    </style>
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
      $(document).ready(function() {
        patch();
      });

      function patch() {
        $('a').each(function() {
          var $this = $(this).prop('tabindex', 0);

          if($this.prop('href').indexOf('#') == -1 || $this.prop('rel').toLowerCase() == 'external') {
            return;
          }

          var $span = $('<span class="a" tabindex="0"></span>');

          $span.prop('data-href', $this.prop('href'));
          $span.text($this.text());

          $this.replaceWith($span);
        });

        $('a[rel="external"]').click(function() {
          window.open($(this).prop('data-href'));
          return false;
        });

        $('span.a').click(function() {
          location.href = $(this).prop('data-href');
        }).keypress(function(event) {
          if(event.keyCode == 13) {
            location.href = $(event.target).prop('data-href');
          }
        }).focus(function() {
          window.status = ''; // IE9 fix.
        });
      }
    </script>
  </head>
  <body>
    <ol>
      <li><a href="http://google.com" rel="external">External Link</a></li>
      <li><a href="#foo">Action Foo</a></li>
      <li><a href="#bar">Action Bar</a></li>
      <li><a href="#baz">Action Baz</a></li>
      <li><a href="mailto:[email protected] /cdn-cgi/l/email-protection">Email Support</a></li>
    </ol>
  </body>
</html>

patch()替换所有包含的链接#(即,在我的例子中,特定于应用程序的操作)span元素,使所有“外部”链接在新选项卡/窗口中打开,并且似乎不会破坏自定义协议处理。


有没有一种可移植的方法来禁用这些工具提示?

不,除了像上面的例子这样的解决方法。

在我的特殊情况下,我是否遗漏了这样做的任何明显缺点?

你似乎忽略了整个情况很尴尬的事实。如果你想让链接看起来像按钮,为什么还要有链接呢?只需使用按钮即可。就此而言,如果您最终还是用跨度将链接切换掉了,那为什么还要费心去处理链接呢?只需使用跨度即可。

我的尝试(见下文)是实现这一目标的合理方法吗?

作为一般方法,这并不是很合理,因为您要从文档中删除这些锚元素,因此任何附加的事件侦听器、expandos 等都将丢失。它可能适合您的具体情况,但更明智的方法是首先不使用链接(见上文)。


如果你仍然决心做这样的事情,至少不要更换a元素。只要摆脱它href属性并设置事件侦听器,就像您在示例中所做的那样。现在它不再是一个链接,因此它不会显示在状态栏中(但至少它仍然是相同的元素)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用浏览器状态栏文本 的相关文章

随机推荐

  • 在没有 Webpack 的情况下使用模块“child_process”

    我正在使用 Webpack 来捆绑依赖项 其中之一是电子邮件服务postmark 该服务依赖于称为child process显然是随节点一起提供的 问题是 当我尝试运行 webpack 来捆绑我的应用程序时 它会抱怨 找不到模块 错误 无法
  • 为什么使用 System.Threading.Interlocked.Decrement 而不是减号?

    我将一些 C 代码转换为 vb net converter telerik com 将其转换为 i 进入这个 System Math Max System Threading Interlocked Decrement i i 1 所有的花
  • 我可以在 React Native 中需要一个专门用于 iOS 的模块吗?

    我目前正在使用react native safari view https github com naoufal react native safari view我的 React Native 项目中用于在 iOS 中显示 Web 视图的模
  • 如何让一个不可见的透明按钮起作用?

    查看 Unity 论坛和问答网站中的一些答案 如何制作隐形按钮的答案不起作用 因为删除与按钮关联的图像会使其不起作用 如何解决这个问题并保持不可见属性 同时允许按钮实际工作 这是 Unity 的怪异之处之一 100 的现实世界项目都需要这个
  • 如何转换 R 中列匹配模式中的值

    我有这个数据框mydf 专栏nucleotide可以有A T G C字母 我想更改字母A to T C to G G to C and T to A 如果strand列是 我该怎么做 mydf lt structure list seqna
  • 使用详细信息和摘要标签作为可折叠内联元素

    我正在努力研究这个问题的解决方案 找到一种方法来实现可折叠按钮 或其他类似对象 这样 它们可以在同一行中使用 单击时 其内容显示在按钮所在行和下一行之间 他们反应敏捷 内容的样式独立于标题 我制作这个 gif 是为了更好地了解我想要获得什么
  • 使用 CSS 检查滚动

    我正在尝试创建一个纯 100 CSS 无 jQuery 返回顶部 按钮 但我希 望该按钮仅在访问者向下滚动页面时显示 是否可以用 CSS 来检查这一点 因此 如果访问者向下滚动一点 则会显示 返回顶部 按钮 Thanks 根据光标位置确定
  • Entity Framework 4.1+ 多对多关系更改跟踪

    如何检测 ICollection 属性的更改 多对多关系 public class Company public virtual ICollection
  • 如何在 Excel VBA 中将 UTF-8 转换为 UTF-16?

    据我所知 Excel使用UTF 16来表示字符串文字 我从控制台 Mac 文件 Windows 读取数据 在这两种情况下 字符编码都是混乱的 我必须找到一个适用于两个平台的解决方案 因此 ADO 流不是一个选项 我进行了一些调试 发现实际字
  • 如何在 python 中 unpickle 托管在 Web URL 中的文件

    pickle 和 unpickle 对象的正常方法如下 腌制一个对象 import cloudpickle as cp cp dump objects open picklefile pkl wb UnPickle 一个对象 加载腌制文件
  • 如何检查 JQuery select 中是否已存在选项

    如何检查 JQuery 的 select 中是否已存在选项 我想动态地将选项添加到 select 中 因此我需要检查该选项是否已经存在以防止重复 如果它已经存在 则评估结果为 true yourSelect option value you
  • 如何自定义锁定屏幕?就像 Android 中的 WaveSecure

    我想做一个像 WaveSecure 一样的演示 它以第三名的成绩赢得了 Android Develop Challenge 2 现在我在自定义锁定屏幕时遇到了问题 所以我想知道WaveSecure是如何实现其锁定功能的 如下图所示 当手机锁
  • 如何在 NSData 中打包结构体? [复制]

    这个问题在这里已经有答案了 可能的重复 通过 GameKit 发送和接收 NSData https stackoverflow com questions 4837102 send and receive nsdata via gameki
  • 我可以简化同一专用网络上计算机的 WebRTC 信号传输吗?

    WebRTC 信号让我发疯 我的用例非常简单 信息亭和控制室网络应用程序之间的双向音频对讲 两台计算机都在同一网络上 两者都无法访问互联网 所有机器都有已知的静态 IP 我读到的所有内容都希望我使用 STUN TURN ICE 服务器 这个
  • 过滤等于或大于某个值的数据的函数

    我有一个包含数千行和列的数据框 行包含基因名称 列包含样本名称 我只想保留 3 个以上样本中包含等于或大于 5 的值的行 到目前为止我已经尝试过 但我不知道如何设置多个条件 data frame1 gt filter all all var
  • 如何在 Java 中将字符串(IP 数字)转换为整数

    例子 using Integer parseInt int i Integer parseInt 123 你会如何做同样的事情 using Integer parseInt int i Integer parseInt 123 45 55
  • 语法分析和语义分析有什么区别?

    据我了解 Parser由词法分析 句法分析和语义分析三个阶段组成 Lexical 它将我的输入分割成标记 例子 123 100 0 gt 123 100 0 语法 它将研究标记并检查它们是否彼此有意义 我遇到的问题是理解最后阶段的 语义解析
  • 使用组合框过滤文本框

    好吧 我必须创建一个表单 它获取文件夹的内容并将其列出在文本框中 是的 文本框不是列表框 然后 我必须使用包含文件夹所有扩展名的组合框来过滤此文本框 例如 如果我在组合框中选择 txt 则文本框应过滤以仅显示所有文本文件 除了让组合框过滤文
  • 在嵌入式 Python 解释器中打印变量

    我编写了一个嵌入 Python 的小型 C 程序 我使用 Py Initialize 和 Py Finalize 正确设置它 并且能够使用 PyRun SimpleString 或 PyRun SimpleFile 运行脚本 但是 我不知道
  • 禁用浏览器状态栏文本

    背景 现代浏览器取消了经典的状态栏 而是在窗口底部绘制一个小工具提示 在悬停 焦点时显示链接目标 下面的屏幕截图说明了这种行为的示例 在我的例子中是不需要的 问题 有没有一种可移植的方法来禁用这些工具提示 在我的特殊情况下 我是否遗漏了这样