2010-11-06 3 views
1

Я могу открыть новое окно, используя window.open() в ExternalInterface.call(), но затем я хочу, чтобы иметь возможность писать содержимое в новом окне. Поскольку я не могу получить ссылку на окно обратно с window.open(), я не могу ничего сделать с окном после его открытия.Откройте окно браузера с помощью ExternalInterface, затем напишите HTML-код

Обратите внимание: у меня нет никакого контроля над HTML, в котором отображается мой swf.

Был ли кто-нибудь в этой ситуации раньше?

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

ответ

0

Возможно, если вы сохраните имя ссылочной переменной окна JavaScript. Но вы можете подумать о том, что, если вы не имеете никакого контроля над HTML, где отображается SWF, вы не можете быть уверены, что доступ к javascript не будет вызывать SecurityError на основе различных политик безопасности, изложенных от флеш-команды.

0

Вы пытаетесь просто представить новую веб-страницу из вашего .swf? если это так, внешний интерфейс не требуется. Вы можете просто использовать navigateToURL:

navigateToURL(new URLRequest("http://www.stackoverflow.com"), "_blank"); 

Однако, если вы хотите сделать всплывающее окно с настраиваемым размером и видимостью панели инструментов браузера и скроллинга можно назвать внешний интерфейс, как это:

if (ExternalInterface.available) 
    { 
    ExternalInterface.call(
         "window.open", 
         "http://www.stackoverflow.com", 
         "win", 
         "height=200, width=300, toolbar=no, scrollbars=yes" 
         ); 
    } 
+0

Я могу открыть окно браузера, используя оба параметра - 'navigateToURL()' и 'ExternalInterface'. Мой вопрос заключается в том, как писать содержимое в нем, используя javascript, отправленный через 'ExternalInterface'. – nuaavee

Смежные вопросы