2

我正在寻找一种在 Internet Explorer 中为 flex 应用程序动态设置窗口标题的方法。最好的方法是从 actionscript 调用 javascript,通过“ExternalInterface”设置窗口标题。

ExternalInterface.call("eval(window.document.title = 'New Title')"); ExternalInterface.call("alert", "Hello ExternalInterface");

这在 IE 以外的浏览器中运行良好,甚至在通过 html 包装器访问 flex 应用程序的 swf 文件时也可以在 IE 中运行。

ttp://localhost:8080/ChangeTitle/ ChangeTitle.html

但是,我需要直接从浏览器访问.swf.. ttp://localhost:8080/ChangeTitle/ ChangeTitle.swf

这会导致外部接口调用将窗口标题更改为不起作用,但仍会显示警报。

所以问题是……我为什么不直接使用 html 包装器?...答案:因为该项目是专门为避免使用 html 包装器而设置的。

这与一个已知的 IE 错误有关 - http://bugs.adobe.com/jira/browse/FP-240

如果有人可以建议解决此问题的方法,将不胜感激。

谢谢

4

1 回答 1

5

不要为此使用 ExternalInterface;使用BrowserManager类。你可以先用一个标题来初始化它:

var browser:IBrowserManager = BrowserManager.getInstance();
browser.init("", "my title");

稍后您可以稍后调整标题:

browser.setTitle("my new title");

我有几个应用程序使用它并在 IE 中完美运行(尽管我没有测试过 IE6)。
有关此主题的更多信息:http: //help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf64e50-7ff4.html

于 2012-06-28T18:33:43.367 回答