Flex

URLの末尾に#が付いて、Titleが#だけになってしまう


FlexBuilderで生成したHTMLにアクセスすると、URLの末尾に#が付いてページのTitleが#だけになってしまうので、それの回避方法を 紹介します。
FlexからJavaScriptを呼び出すため、HTMLのページにJavaScriptを定義する。

[ IntraMaster.html ]
---------------------
<script language="JavaScript" type="text/javascript">
<!--
...省略...
//------------------------------------------------------------------------------
// MyScript
function setTitle(){
    if(location.href.indexOf("#",0) == -1){
        //window.alert("no #");
    }else{
        document.title = "IntraMaster";
        //alert("yes #");
    }
}
setTitle();
//------------------------------------------------------------------------------
// -->
...省略...
</script>
[ EOF ]
---------------------
あとは定義したJavaScriptをActionScriptから(ExternalInterfaceを使用して)任意のタイミングで呼び出すだけ。
今回はFlex側のWindowがActiveになった時点で onActive();を呼び出しています。

[ LoginWindow.mxml ]
--------------------------
<mx:Script>
    <![CDATA[
        private function onActive():void{
            if(flash.external.ExternalInterface.available){
                flash.external.ExternalInterface.call("setTitle");
            }
        }
    ]]>
</mx:Script>
...省略...
[ EOF ]
--------------------------
以上。
このページの先頭へ