Javascript 在adobeair中使用函数

Javascript 在adobeair中使用函数,javascript,air,Javascript,Air,嗨,我刚开始玩AdobeAIR。我将它与一个名为Angular的javascript库一起使用 但是,库中有一行代码触发Adobe Air的沙盒: fn = Function('s', code); 在Adobe Air support页面上有这样一句话: 对新函数(param,body)的调用可以替换为内联函数声明,或者仅在处理页面加载事件之前使用 你能给我解释一下内联函数声明是什么意思,以及通常如何使用它来达到同样的效果吗 感谢使用eval和其他阻塞方法的JavaScript框架可以在ad

嗨,我刚开始玩AdobeAIR。我将它与一个名为Angular的javascript库一起使用

但是,库中有一行代码触发Adobe Air的沙盒:

fn = Function('s', code);
在Adobe Air support页面上有这样一句话:

对新函数(param,body)的调用可以替换为内联函数声明,或者仅在处理页面加载事件之前使用

你能给我解释一下内联函数声明是什么意思,以及通常如何使用它来达到同样的效果吗


感谢使用eval和其他阻塞方法的JavaScript框架可以在adobeair中工作,但不能在应用程序沙箱中工作

有关详细信息,请参阅本文档,但实际上,您可以通过将使用框架的页面加载到辅助框架中来实现这一点。空中的顶部框架始终被视为应用程序沙盒,而其他任何框架都在非应用程序模式下运行,因此允许访问所有被阻止的javascript方法

搜索“配置基于HTML的应用程序概述”部分

下面是一个我用来解决这个问题的框架集示例

<body>

    <iframe src="/blank.html" width="100%" height="0" scrolling="no" id="top" ></iframe>
    <iframe src="http://www.example.com/air/home.html"  documentRoot="app:/" sandboxRoot="http://www.example.com/air" allowCrossDomainXHR="true" width="100%" height="720" scrolling="no" id="bottom">
    </iframe>

</body>

神奇之处在于documentRoot和sandboxRoot属性。设置为documentRoot的内容将替换sandboxRoot中使用的域。请注意,因此,sandboxRoot不需要是有效路径

在本例中,顶部框架将一个名为blank.html的文件从应用程序加载到应用程序沙盒中,因此该文件可以调用文件系统函数等。。应用程序沙盒有权限执行此操作

第二个框架将从应用程序目录加载“home.html”,但它将加载到非应用程序沙箱中,沙箱中可以包含几乎任何将在Safari 4中运行的JavaScript框架(假设您使用的是最新版本的AIR运行时)。但是,此框架无法调用文件系统访问等安全AIR功能

如果希望从第二个框架调用文件系统函数和其他安全方法,则需要创建一个沙箱桥,我在上面提到的文档中介绍了这一点

希望这有帮助