Отключение текста в строке состояния браузера

Фон

Современные браузеры избавляются от классической строки состояния и вместо этого рисуют небольшую всплывающую подсказку в нижней части своих окон, которая отображает цель ссылки при наведении/фокусе.

Пример такого (нежелательного, в моем случае )поведения показан на следующем снимке экрана.:

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


Вопросы

  1. Есть ли портативный способ отключить эти всплывающие подсказки?
  2. Упускаю ли я какие-либо очевидные недостатки этого действия в моей конкретной ситуации?
  3. Является ли моя попытка (см. ниже )разумным способом добиться этого?

Обоснование

Я работаю над веб-приложением для интрасети и хотел бы отключить это поведение для некоторых конкретных действий приложения, -потому что, откровенно говоря, 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, делает все "внешние" ссылки открытыми в новая вкладка/окно и, похоже, не нарушает обработку пользовательского протокола.

13
задан Damien_The_Unbeliever 6 May 2012 в 04:31
поделиться