Flex 修改浏览器页面标题

修改浏览器页面标题2009-01-16 16:23浏览器页面的标题是通过设置Application的 pageTitle属性而来的,但是这个属性是不能通过绑定来实时更新的,例如你不能在ActionScript里指望像下面这样来修改浏览器的标题:

pageTitle = "我要设置自己的标题";

而只能在应用的MXML页面中去设死标题:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
pageTitle="我要设置标题"
...

可是有时候我们又需要在标题中反映我们当前在操作的子模块,那么这个可以通过调用javascript来修改标题,需要用到的ActionScript类为ExternalInterface,方法为call,该方法的说明为如下:

public function call(functionName:string, ...parameters):Object;

第一个参数就是要调用的javascript方法名称,第二个参数是该javascript方法要传入的参数

对于上面的问题,我们可以这样来处理:

1.修改FLEX工程中的html-template下的index.template.html文件,添加个javascript方法如下(加在</head>标签之前就可以了):

<script language="JavaScript" type="text/javascript">
function changeTitle(title){
document.title = title;
}
</script>

为什么要修改这个index.template.html文件?因为这是个模板文件,所有生成的html封装文件是以此作为模板的,因此如果你修改编译后生成的HTML封装文件的话,下次编译后又没了,因为编译前会删除之前编译的文件。

2.在FLEX中调用

if (ExternalInterface.available){
ExternalInterface.call("changeTitle","设置成我的标题");
}

版权声明:本文为iteye_3010原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。