禁用 Flex 4 AIR HTMLLoader 上的警报 javascript 功能

发布于 2024-10-30 04:51:33 字数 395 浏览 0 评论 0原文

在 Flex 4 中的 AIR 应用程序中,我使用 mx:HTML,当我导航到这样的位置时,

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

但是,某些网站在 javascript 中具有“警报”功能,如下所示:

alert('hello world!');

并且 AIR 在中显示消息一个框...

我只是想删除或忽略这些消息,但我不知道如何...

我认为解决方案是扩展 HTMLLoader 类,但我在 Flex 中的经验是太穷了..

有人可以帮助我吗?

预先感谢:)

In my AIR application in Flex 4, I use mx:HTML, and when I navigate to a location like this

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

But, some websites have "alert" function in javascript like this :

alert('hello world!');

and AIR show the message in a box...

I just want to remove, or ignore these messages, but I don't know how...

I think the solution is to extend the HTMLLoader class, but my experience in Flex is too poor..

Someone can help me ?

Thank in advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

活雷疯 2024-11-06 04:51:33

This is the best thing I could find:

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

It looks like you can extend the HTMLLoader as you suggested and override javascript callbacks. I haven't tried this so I'm not sure but it's worth giving it a whirl.

够运 2024-11-06 04:51:33

经过调试和测试,我发现HTMLLoader有一个属性window。这个窗口就像 javascript DOM 窗口。

您可以使用以下代码来禁用警报。

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)}" ...

希望这会对您有所帮助。

After debug and test, I found that the HTMLLoader has a property window. This window is like javascript DOM window.

You can use following code to disable 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(){};
    }
}

And modify your HTML component property htmlLoaderFactory to ...

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

Hope this will help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文