Если я вызову функцию flash одновременно с ссылкой href, функция flash будет всегда выполняться?

StackOverflow https://stackoverflow.com/questions/1007451

Вопрос

У меня есть следующий код в page1.php:

<a href="page2.php" onClick="javascript:callFlash();">Go to page</a>

Это вызывает функцию во Flash-фильме на page1.php и открывает page2.php.

У меня такой вопрос:

Могу ли я быть уверен, что функция flash всегда будет вызываться и завершится до вызова page2.php? (Функция flash фактически сохраняет некоторые данные в локальный общий объект).

Или я должен добавить немного кода для функции флэш-памяти в getURL (" page2.php "); , когда это будет сделано.

любые мысли приветствия

Это было полезно?

Решение

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

Другие советы

Прежде всего, не включают "javascript:" псевдопротокол в атрибуте onclick .

Попробуйте использовать onclick = " return callFlash () " & # 8212; Таким образом, браузер должен дождаться завершения функции JS, прежде чем перейти по ссылке. Я не знаю метод, который вы используете для вызова функций AS, но если он синхронный (то есть может возвращать данные в JS без использования обратных вызовов или чего-то еще), функция AS будет завершите работу перед JS-функцией и перед перезагрузкой страницы. Так что это должно быть безопасно.

Ответ на вопрос - нет.

Есть простой обходной путь. Просто остановите распространение события click и дайте flash перенаправить:

<a href="page2.php" onClick="stop_and_call(event);"/>

JavaScript:

function stop_and_call(e)
{
    if (!!(window.attachEvent && !window.opera)){
        // this is IE
        e.returnValue = false;
        e.cancelBubble = true;
    } else {
        e.preventDefault();
        e.stopPropagation();
    }
    e.stopped = true;
    callFlash();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top