【问题标题】:Flex 3 : Easy Deep Linking QuestionFlex 3:简单的深度链接问题
【发布时间】:2011-01-25 20:58:34
【问题描述】:

我的 Flex 3 网站上的深层链接有问题。我希望人们能够链接到网站的不同部分。我还希望能够在浏览器栏中输入 url 并被带到我网站的特定部分。另外,我需要默认打开#view=2。

我在设置默认 #view=2 时遇到问题。因此,它应该检查浏览器片段以查看它是否是网站的有效部分。如果是,那么它应该调用 parseUrl() 并打开站点的该部分。到现在为止还挺好。问题是如果循环没有找到有效的视图编号,如何将默认设置为 view=#2?

这是我的代码:

private function initBrowserManager(): void {

    browserManager = BrowserManager.getInstance();
    browserManager.addEventListener(BrowserChangeEvent.BROWSER_URL_CHANGE, parseUrl);
        browserManager.init("","My Website");

    if(browserManager.fragment != null){

         for (var j:uint = 0; j < ComboBoxDP.length; j++){
            if(browserManager.fragment == "view="+ComboBoxDP[j].series){
                            parseUrl();
                            break;
            }


         }

    }


 }

我尝试在所有我能想到的地方添加这一行:else{browserManager.setFragment("view="+ 2); parseUrl();},但到目前为止还没有运气。我知道答案会很简单。有什么建议吗?

谢谢。

-拉克西米迪

【问题讨论】:

    标签: apache-flex deep-linking


    【解决方案1】:

    我假设了代码的一些意图,但我会使用布尔值:

    var initialFragmentValid:Boolean = false;
    if(browserManager.fragment != null){
         for (var j:uint = 0; j < ComboBoxDP.length; j++){
            if(browserManager.fragment == "view="+ComboBoxDP[j].series){
                initialFragmentValid = true;
                break;
            }
         }
    }
    
    if (!initialFragmentValid) {
        // set the default
        browserManager.setFragment("view=2");
    }
    
    // always parse initially because we'll have a fragment regardless
    parseUrl();
    

    【讨论】:

    • 您好贾斯汀 N,非常感谢您的帮助。直到今天我才尝试这个解决方案。它奏效了。太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2019-04-11
    • 2019-03-12
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多