使用ExternalInterface打开浏览器窗口,然后在其中编写HTML

时间:2010-11-06 00:57:41

标签: javascript actionscript-3 externalinterface

我可以使用window.open()中的ExternalInterface.call()打开一个新窗口,但我希望能够将内容写入新窗口。因为,我无法从window.open()调用中获取窗口的引用,一旦打开窗口,我就无法对窗口执行任何操作。

请注意:我无法控制显示swf的HTML。

以前是否有人遇到过这种情况?

更新:经过几个小时的反复试验后,我发现您可以通过全局存储窗口引用并在需要访问新窗口时引用相同的全局引用来摆脱这种情况。

2 个答案:

答案 0 :(得分: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"
                         );
   }

答案 1 :(得分:0)

可以存储javascript窗口引用变量的名称。但是,您可能需要考虑这样一个事实:如果您对显示swf的HTML没有任何控制权,则无法确定javascript访问权限是否会根据各种内容引发SecurityError闪存团队制定的安全政策。