| 
 отмена получения фокуса ну пускай фокус нельзя отменить с помощью return false/preventDefault. Но что самое интересно, если вызвать blur в обработчике focus (из-за щелчка мышью) в ff, то событие фокус возникает еще раз на том же элементе.  Кто-нибудь может объяснить физику процесса? Для полноты картины: опера не вызывает onblur, а в chrome, похоже, эти события не реализованы. тестовый код: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <script type="text/javascript">
    function d( t ) {
        var br = document.createElement('br');
        document.body.appendChild( br );
        var n = document.createTextNode( t );
        document.body.appendChild( n );
    }
    </script>
</head>
<body>
<a href="#" 
   onblur="d('blur');"
   onfocus="d('focus');
            this.blur();">link</a>
</body>
</html>
 | 
| 
 или может есть более цивилизованные пути решения проблемы? | 
| 
 Кстати, это при клике. Если выделить ссылку табом, то в ФФ будет только одна пара focus-blur, мышью - две. UPD Вот, похоже, на эту тему: https://bugzilla.mozilla.org/show_bug.cgi?id=53579 | 
| 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<script type="text/javascript">
    function init() {
        for ( var i in {
            'DOMActivate': 1,
            'click': 1,
            'mousedown': 1,
            'mouseup': 1,
            'contextmenu': 1
        } ) document.body.firstChild.addEventListener(i, function(e){
            d( e.type );
        }, true);
    }
    function d( t ) {
        var br = document.createElement('br');
        document.body.appendChild( br );
        var n = document.createTextNode( t );
        document.body.appendChild( n );
    }
    function f( target ) {
        d('focus');
        target.nextSibling.focus();
    }
</script> 
</head> 
<body onload="init()"><a href="#" onblur="d('blur')" onfocus="f(this)">link</a><a href="#">.</a></body> 
</html>
При mousedown на link -- двойной focus/blur. При это фокус вроде как на второй ссылке. Ппц... UPD Ммм, а если нажимать средней кнопкой -- все гут :) | 
| 
 В общем, если задача стоит просто не допустить фокуса "любой ценой" :), то вроде бы достаточно так: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<script type="text/javascript">
    function d( t ) {
        var br = document.createElement('br');
        document.body.appendChild( br );
        var n = document.createTextNode( t );
        document.body.appendChild( n );
    }
</script> 
</head> 
<body><a href="#"
    onblur="d('blur')"
    onfocus="d('focus');this.blur()"
    onmousedown="d('mousedown');this.blur();return false"
    oncontextmenu="d('contextmenu');this.blur();return false;">link</a>
</body> 
</html>
 | 
| 
 bug вроде не про то Цитата: 
 focus0 blur0 focus1 blur1 focus0 blur0 focus1 но вообще дело в том, что смена фокуса происходит внутри обработчика смены фокуса. Чувствуешь, м? :) (хотя могло бы и работать) Если изменить фокус после завершения обработчиков, то все ok 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<script type="text/javascript">
    function d( t ) {
        var br = document.createElement('br');
        document.body.appendChild( br );
        var n = document.createTextNode( t );
        document.body.appendChild( n );
    }
</script> 
</head> 
<body>
    <a href="#" onfocus="
        d('focus0')
        var self = this;
        setTimeout( function() {
            self.nextSibling.focus();
        }, 0);
    "
    onblur="d('blur0')"
    >link0</a
    ><a onfocus="d('focus1')" 
       onblur="d('blur1')" href="#">link1</a>
</body> 
</html>
Цитата: 
 Вообще задача была примерно такая: есть ссылка выполненная в виде картинки, и вокруг нее эта рамочка появлялась... совсем не в тему | 
| 
 Цитата: 
 Это лечится в css: 
a {outline: none;}
Спасибо http://www.htmlbook.ru/faq/?a=67 | 
| 
 Цитата: 
 -------- а вот нашел http://webmaster.ee/javascript/JavaS...html#hideFocus | 
| 
 Пуф, точно не в ту степь :) | 
| 
 Я обычно использую  
a img {border: none; outline: none} a {outline: none}
— убирает бордюр и изображений и пунктирную рамку вокруг активной ссылки в Fx | 
| Часовой пояс GMT +3, время: 21:24. |