如何在Adobe AIR应用程序中访问iframe?

时间:2009-02-21 18:01:37

标签: javascript iframe adobe air flex

我正在尝试使用AIR中的嵌入式webkit编写一个带有HTML + Javascript的小浏览器。

我正在用户在iframe中输入的网址上显示该页面。

从那里,我想:

  1. 访问框架的内容,例如在选项卡上显示页面。
  2. 在用户点击框架时收到提醒,例如更新网址栏。
  3. 对于1),我知道在浏览器中禁止安全性。 但是,我猜这应该可以在AIR应用程序中实现,可能是通过询问用户权限(比如Firefox中的Gecko)。

    有谁知道怎么做1)? 是否有事件或事情要做2)?

    感谢您的帮助,

    学家

3 个答案:

答案 0 :(得分:2)

因为朱利安听起来他会起诉我,我会回复;)

那么,您是不是在使用Flex Builder?如果你是,它会告诉你右边的小红点。 Flex Builder有时会发脾气,它有助于关闭并重新打开解决方案。在极端情况下IDE本身并重新加载项目。顺便说一句:您是否创建了桌面(AIR)应用程序? HTMLLoader适用于AIR

如果您没有使用Flex Builder IDE,我建议您仔细阅读link。 Adobe推荐(here)。

你的代码在我的结尾编译得非常好。但是,令我困惑的是你想用ExternalInterface实现的目标。

答案 1 :(得分:1)

  

访问框架的内容

假设您有iframe的身份ifrm

var html:HTMLLoader = new HTMLLoader();
// ... 
// in the `complete` event handler
trace(html.window.document.getElementById("ifrm").innerHTML); // content
  

在用户点击框架时收到提醒

如果你有一个javascript事件处理程序来捕获对iframe子元素的修改,你可以调用你的AS函数/事件处理程序。

您需要阅读this:)

答案 2 :(得分:0)

Dirk,

没有你我能做什么;) 你在为Adobe工作吗?

我没有(还)FB,只使用普通的基本编译器mxmlc。 我不知道HTMLLoader只适用于AIR !! ;) 使用 a mxmlc顺利编译...

所以我继续......

顺便说一下,外部接口能够从我的“主”javascript中加载我的帧中的页面(我在JS中比在AS3中更流畅,所以想要最小化AS3)。

现在,我将添加另一种方式:能够从AS3中的函数调用主JS中的函数,处理HTMLLoader上的“COMPLETE”事件,并将我想要的HTML字符串传递给JS用jQuery阅读。