Вызов функции из задачи js - PullRequest
       8

Вызов функции из задачи js

0 голосов
/ 17 октября 2008

У меня есть SWF-файл, который я не контролирую. SWF-файл ожидает вызова JavaScript для установки некоторых переменных после инициализации.

SWF-файл внедрен с использованием swfobject, и я пытаюсь вызвать функцию as сразу после встраивания. Это кажется слишком рано, потому что я получаю ошибку. Все остальное должно быть в порядке, поскольку вызов функции as вручную через firebug не приводит к ошибке.

Итак, вопрос в том, как вызвать функцию после завершения встраивания?

Ответы [ 3 ]

1 голос
/ 17 октября 2008

Вы делаете это, пока страница еще загружается? Или из обработчика am onload? Если это встроенный javascript, я бы предложил сделать это в обработчике onload из javascript, который вы можете сделать следующим образом -

window.onload = function() {
  // your code here 
}

будет запускать ваш код после полной загрузки страницы.

Это не гарантирует, что вспышка инициализирована. Вы могли бы сделать это, сделав так, чтобы flash сделал обратный вызов javascript, когда он будет готов, но вы сказали, что swf не находится под вашим контролем. Все, что я могу думать о том, чтобы мы использовали метод onload, чтобы убедиться, что страница загружена, а затем вставьте небольшую задержку, прежде чем пытаться ее использовать. Посмотрите на функцию setTimeout javascript для этого. Не очень хорошее решение.

0 голосов
/ 02 июня 2010

При интеграции Flash и HTML / JavaScript существует несколько общих подходов, разработанных для устранения этой проблемы.

  1. Передайте переменные как flashvars. Они сразу же будут доступны для флэш-фильма.

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

    function MovieLoaded() {
        doSomething();
    }
    
0 голосов
/ 20 октября 2008

I нашел код для проверки, существует ли функция. В итоге:

if (typeof yourFunctionName == 'function') {
    yourFunctionName();
}

Это работает для вас? Если это так, то вы можете просто обернуть в while цикл. Чуть менее неприятно, чем setTimeOut!

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