通过iframe处理网址

问题描述 投票:1回答:1

我有一个用angularjs编写的facebook应用程序,它的工作就像一个魅力,除了事实,因为我通过应用程序的各种链接,如http://[baseurl]/#/item/25这不反映导航栏中显示仍然保持http://apps.facebook.com/MyTestApp/的网址

所以我在这里需要的是能够在包含我的应用程序的iframe之外反映angularjs路由。

facebook angularjs facebook-apps
1个回答
0
投票

最后,我通过解析url中的参数来管理这种情况

http://apps.facebook.com/MyTestApp/index.php?p=goto#item/48

所以,一方面,一旦我登陆index.php,通过php我检查$ _GET ['vairable']并使用它作为触发器来获取哈希字符串来提供直接执行的javascript变量,在包括angluar之前。因此,只要执行mainController(与索引关联的角度控制器),具有路径的变量就已经实例化。此时,角度检测到有一个变量迫使路径到达某处,它将在那里得到路由。

这是一些代码

标记中的index.php,紧跟在jquery lib包含之后,就在angular包含之前

<script language="javascript" type="text/javascript">
    var redirect_to = null;

    $(function() {
        <?php
                // redirecting rulez
            if(isset($_GET['p'])) {
                ?>
                    redirect_to = window.parent.location.hash.substring(1);
                <?php
            }
        ?>

    });
</script>

mainControl.js是在你加载index.php的时候被击中的那个

if(redirect_to != null)
    $location.path(redirect_to);

在其他控制器中

if(redirect_to != null) 
    window.parent.location.hash = "#" + $location.path();

重复所有其他控制器。请享用

© www.soinside.com 2019 - 2024. All rights reserved.