Javascript onFocus изначально не срабатывает в Safari

Я работаю над клиентским сайтом, расположенным здесь: http://www.marcusleighcopy.co.uk/about< /а>

После всплывающего окна вы должны увидеть страницу с описанием, под изображением есть устройство для отзывов, которое я построил. JS для фактического устройства в порядке, однако я хотел, чтобы устройство ничего не делало, если окно в данный момент не просматривается (поскольку странная очередь была построена и все запущены сразу, когда фокус вернулся к окну).

Во всяком случае, я изменил свой код и добавил это: (как и в другом вопросе здесь)

if (/*@cc_on!@*/false) 
            { 
                // check for Internet Explorer
                document.onfocusin = onFocus;
                document.onfocusout = onBlur;
            } 
            else 
            {
                window.onfocus = onFocus;
                window.onblur = onBlur;
            }

И мое тестовое устройство таково:

function onBlur() 
            {
                document.body.className = 'blurred';
            };
            function onFocus(){
                document.body.className = 'focused';
                    // Testimonial fade in/out
                var testimonial_count = $('div.testimonial').size();
                if (testimonial_count)
                {
                    var testimonials = [];

                    $('div.testimonial').each(function(){
                        testimonials.push($(this));
                    });

                    show_testimonials(0);

                }

                function show_testimonials(currentIndex)
                {
                    testimonials[currentIndex].fadeIn(400);

                    if ($('body').hasClass('blurred'))
                    {
                        return false;
                    }

                    setTimeout(function(){

                        testimonials[currentIndex].fadeOut(400);
                        if (currentIndex + 1 >= testimonial_count)
                        {
                            show_testimonials(0);
                        }
                        else
                        {
                            show_testimonials(currentIndex + 1);
                        }

                    }, 10000);
                }
            };

В SAFARI окно изначально не сфокусировано. Если вы отключите Safari, а затем вернетесь к нему, отзывы отобразятся, как и ожидалось. Как я могу заставить окно сразу запускать функцию onFocus по мере необходимости?


person Alex    schedule 28.02.2012    source источник


Ответы (1)


это вызовет событие focus на DOM ready:

$(function(){
     $(document).focus();
};
person gdoron is supporting Monica    schedule 28.02.2012
comment
@Алекскоуди. Вы написали это после window.onfocus = onFocus; ? Попробуйте также с $(window).focus();. - person gdoron is supporting Monica; 28.02.2012
comment
Я сразу же поместил его в свой $(document).ready(function(){ .. }) (первое в функции) - и я тоже попробовал $(window).focus() - person Alex; 28.02.2012