gpt4 book ai didi

javascript - 禁用浏览器状态栏文本

转载 作者:技术小花猫 更新时间:2023-10-29 12:33:44 25 4
gpt4 key购买 nike

背景

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

以下屏幕截图说明了这种(在我的情况下是不受欢迎的)行为的示例:

http://i.imgur.com/0dAxc.png


问题

  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:support@example.org">Email Support</a></li>
</ol>
</body>
</html>

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

最佳答案

Is there a portable way to disable these tooltips?

不,除了上面示例中的解决方法。

Am I missing any obvious drawbacks to doing this in my particular situation?

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

Is my attempt (see below) a reasonable way of accomplishing this?

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


如果您仍然决心要做这样的事情,至少不要替换 a 元素。只需去掉它的 href 属性并像您在示例中所做的那样设置一个事件监听器。现在它不再是一个链接,所以它不会出现在状态栏中(但它仍然是相同的元素,至少)。

关于javascript - 禁用浏览器状态栏文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com