Если я вызову функцию flash одновременно с ссылкой href, функция flash будет всегда выполняться?
-
06-07-2019 - |
Вопрос
У меня есть следующий код в 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();
}