Отключить функцию предупреждения JavaScript в Flex 4 AIR HTMLLoader - PullRequest
0 голосов
/ 03 апреля 2011

В своем приложении AIR во Flex 4 я использую mx: HTML , и при переходе к местоположению, подобному этому

html.location = 'http://www.somesite.com';

Но некоторые веб-сайты имеют функцию «оповещения» в javascript, например:

alert('hello world!');

и AIR показывают сообщение в окне ...

Я просто хочу удалить или игнорировать эти сообщения, но я не знаю, как ...

Я думаю, что решение состоит в том, чтобы расширить класс HTMLLoader , но мой опыт работы с Flex слишком плохой ..

Кто-то может мне помочь?

Заранее благодарен:)

Ответы [ 2 ]

0 голосов
/ 18 января 2013

После отладки и тестирования я обнаружил, что HTMLLoader имеет свойство window .Это окно похоже на окно DOM javascript.

Вы можете использовать следующий код для отключения alert .

public class MyHTMLLoader extends HTMLLoader
{
    override public function MyHTMLLoader()
    {
        super();
        this.addEventListener(Event.HTML_DOM_INITIALIZE, htmlDomInitializedHandler);
    }

    protected function htmlDomInitializedHandler(event:Event):void
    {
        window.alert = function(){};
    }
}

И измените свойство компонента HTML htmlLoaderFactory на ...

<mx:HTML htmlLoaderFactory="{new ClassFactory(MyHTMLLoader)}" ...

Надеюсь, это поможет вам.

0 голосов
/ 03 апреля 2011

Это лучшее, что я смог найти:

http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7e74.html#WS5b3ccc516d4fbf351e63e3d118666ade46-7e72

Похоже, вы можете расширить HTMLLoader, как вы предложили, и переопределить обратные вызовы JavaScript. Я не пробовал это, поэтому я не уверен, но стоит дать ему повод.

...