Sfondo
Browser moderni farla finita con la barra di stato classico e invece disegnare un piccolo suggerimento in fondo a loro finestre che visualizza la destinazione del collegamento al passaggio del mouse/focus.Disattivazione testo barra di stato del browser
Un esempio di questo comportamento (indesiderato, nel mio caso) è illustrato nello screenshot seguente:
Domande
- C'è un modo portatile per disattivare questi tooltip?
- Mi mancano alcuni ovvi inconvenienti per farlo nella mia situazione particolare?
- Il mio tentativo (vedi sotto) è un modo ragionevole per realizzare questo?
Ragionamento
Sto lavorando su un'applicazione web intranet e vorrei disattivare questo comportamento per alcune azioni specifiche dell'applicazione perché, francamente, https://server/#
appare ovunque come un occhio-dolente ed è invadente poiché in alcuni casi la mia applicazione disegna la propria barra di stato in quella posizione.
mio tentativo
Io non sono un web-developer di professione, così la mia conoscenza è ancora piuttosto limitata in questo settore.
Comunque, ecco il mio tentativo con 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]">Email Support</a></li>
</ol>
</body>
</html>
patch()
sostituisce tutti i link che contengono #
(ad esempio, le azioni specifiche per l'applicazione nel mio caso), con un elemento di span
, rende tutti i link "esterni" Apri in una nuova scheda/finestra e non sembra interrompere la gestione del protocollo personalizzato.
Benvenuti a Stack Overflow! –
http://stackoverflow.com/questions/876390/reliable-cross-browser-way-of-setting-status-bar-text – j08691