Может встроенный доступ к объекту Flash DOM его родительского документа?

Мне просто любопытно, если возможно, что объекты Flash могут получить доступ к DOM документа, который встроил его.

5
задан devviedev 18 March 2010 в 20:12
поделиться

3 ответа

Да, через класс ExternalInterface.

Вы можете выполнять вызовы Javascript из Flash-ролика и получать обратно любую общедоступную информацию о странице, которая вам нужна.

Приложение

Глядя на это полтора года спустя, я решил добавить несколько примеров:

Допустим, у вас есть функция JS на странице вашего клиента, например:

function foo(bar,type) {
  // do something with bar and type
}

Вы вызываете ее из Flash (используя AS3) следующим образом:

ExternalInterface.call(foo, bar, type);

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

Чтобы предоставить метод Flash-ролика за пределами Javascript, вы должны сделать это в вашем Flash или Flex (опять же, AS3):

application1_applicationCompleteHandler(event:Event) {
  // the app has finished loading, so do whatever we
  // have to do on load, plus add that callback
  ExternalInterface.addCallback(foo, bar);
}

public function bar(arg1, arg2) : void {
  // do something with arg1 and arg2
}

В Javascript на странице вы вызываете его следующим образом (где myMovie - это идентификатор SWF):

myMovie.foo(anArg, anotherArg);

В методе addCallback первый аргумент - это внешнее имя функции, а второй аргумент - это закрытие, которое будет вызвано.

7
ответ дан 18 December 2019 в 13:13
поделиться

Не знаю, но они могут выполнять javascript в содержащем документе, который, очевидно, затем может получить доступ к самой DOM.

3
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: