Javascript onFocus не запускается изначально в Safari - PullRequest
0 голосов
/ 28 февраля 2012

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

После всплывающего окна со вспышкой вы должны увидеть страницу 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?

1 Ответ

1 голос
/ 28 февраля 2012

это вызовет событие фокуса на DOM ready:

$(function(){
     $(document).focus();
};
...