Как определить, что веб-страница закрывается или выгружается с помощью Flash по сравнению с обычным HTML - PullRequest
0 голосов
/ 03 февраля 2010

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

Однако я не могу найти способ сказать, что щелчок / изменение URL / выгрузки окна было вызвано тем, что Flash был вызван обычной ссылкой и т. Д.

Есть ли способ обнаружить это и насколько это надежно?

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

Как перенаправить на другую страницу из Flash?

Что вы можете сделать, это перенаправить с помощью Javascript-функции и вызвать ее из Flash (с ExternalInterface). Когда вы вызываете это перенаправление, вы устанавливаете определенный флаг, указывающий, что вы перенаправляете из Flash. Затем установите прослушиватель для события разгрузки окна и проверьте, установлен ли флаг. Если нет, вы можете показать сообщение пользователю. В противном случае просто пропустите это и перенаправьте.

    <script>
    var callFromFlash = false;
    window.unload = unloadPage;

    //call this function from Flash using ExternalInterface
    function doRedirect(url)
    {
        callFromFlash = true;
        //redirecting
        window.location.href = url;
    }

    function unloadPage()
    {
        if(!callFromFlash)
        {
            //show message and wait for response
        }
    }
    </script>
1 голос
/ 03 февраля 2010

Невозможно определить причину события выгрузки непосредственно в обработчике события. Однако этого можно достичь, подключив обработчик события onclick к каждой ссылке на странице, которая устанавливает переменную. В jQuery:

$("A").click(function(){window.clickedLink = this});

Вы можете прочитать clickedLink в вашем событии выгрузки и сказать разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...