我正在寻找一种在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://本地主机:8080 / ChangeTitle /的 ChangeTitle.html
但是,我需要直接从浏览器访问.swf .. TTP://本地主机:8080 / ChangeTitle /的 ChangeTitle.swf
这会导致外部接口调用将窗口标题更改为不起作用,但警报仍会显示。
所以问题是......为什么我不使用html包装器?答案:因为项目是专门设置的,以避免使用html包装器。
这与已知的IE错误有关 - http://bugs.adobe.com/jira/browse/FP-240
如果有人可以就此问题提出解决方法,我们将不胜感激。
由于
答案 0 :(得分: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