nền
Trình duyệt hiện tại bỏ các thanh trạng thái cổ điển và thay vào đó vẽ một tooltip nhỏ ở dưới cùng của cửa sổ của họ hiển thị các mục tiêu liên kết trên di chuột/tập trung.Vô hiệu hóa thanh trạng thái trình duyệt văn bản
Một ví dụ của việc này hành vi (trong trường hợp của tôi không mong muốn) được minh họa trong hình bên dưới:
Câu hỏi
- Có cách nào di động để vô hiệu hóa các chú giải công cụ?
- Tôi có thiếu bất kỳ hạn chế rõ ràng nào để thực hiện việc này trong trường hợp cụ thể của mình không?
- Là nỗ lực của tôi (xem bên dưới) một cách hợp lý để hoàn thành điều này?
Lý
tôi đang làm việc trên một ứng dụng web mạng nội bộ và muốn vô hiệu hóa hành vi này đối với một số hành động ứng dụng cụ thể vì khá thẳng thắn, https://server/#
ở khắp mọi nơi trông giống như một mắt đau và gây khó chịu vì trong một số trường hợp, ứng dụng của tôi vẽ thanh trạng thái của chính nó ở vị trí đó.
Nỗ lực của tôi
Tôi không phải là một nhà phát triển web bởi thương mại, vì vậy kiến thức của tôi vẫn còn khá hạn chế trong lĩnh vực này.
Dù sao, đây là nỗ lực của tôi với 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()
thay thế tất cả các liên kết có chứa #
(ví dụ, các hành động ứng dụng cụ thể trong trường hợp của tôi) với một yếu tố span
, làm cho tất cả các liên kết "bên ngoài" mở một tab/cửa sổ mới và dường như không phá vỡ xử lý giao thức tùy chỉnh.
Chào mừng bạn đến Stack Overflow! –
http://stackoverflow.com/questions/876390/reliable-cross-browser-way-of-setting-status-bar-text – j08691