首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >轻松XDM - IFrame导航中断套接字

轻松XDM - IFrame导航中断套接字
EN

Stack Overflow用户
提问于 2016-09-19 17:03:55
回答 1查看 482关注 0票数 0

我使用EasyXDM来处理跨域通信,以便父级知道子级的大小和子级的位置。我已经把尺寸调整好了。问题是当我在iframe中导航时,我想将位置推回父服务器。

问题是,当我更改页面时,套接字无法再次创建,给出了VM87 Core.js:324未定义的错误: url是未定义的或空的

还有人碰到这个吗?

父母(消费者):

代码语言:javascript
复制
<script language="javascript">
    (function () {
    // CTOR has side effect of creating globals for socket
        var socket = new easyXDM.Socket({
            remote: "@(Model.Url)" + document.location.hash,
            container: $("#pluginFrame")[0],
            onMessage: function (message, origin) {
                var messageAsObject = JSON.parse(message);

                if (messageAsObject.height) {
                    $("#pluginFrame iframe").height(messageAsObject.height);
                }

                if (messageAsObject.path) {
                    document.location.hash = messageAsObject.path;
                }
            },
            onReady: function() {
                console.log("Shell Socket Ready");
                $("#pluginFrame iframe").width("100%");
            }
        });
    })();
</script>

儿童(制作人) Razor布局

代码语言:javascript
复制
<script language="javascript">
    (function () {
        debugger;
        var socket = new easyXDM.Socket({
            onReady: function () {
                console.log("eBox Ready");

                socket.postMessage(JSON.stringify({
                    height: $(".body-content").outerHeight(),
                    path: document.location.pathname
                }));
            }
        });

        $("body-content")
            .on("change",
                function () {
                    socket.postMessage(JSON.stringify({
                        height: $(".body-content").outerHeight()
                    }));
                });

        $(document.location.pathname)
            .on("change",
                function () {
                    socket.postMessage(JSON.stringify({
                        path: document.location.pathname
                    }));
                });

        socket.postMessage(JSON.stringify({
            path: document.location.pathname
        }));
    })();
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-26 18:40:04

从我所见的一切来看,没有办法做我想要做的事。对于我最终试图解决的问题,将路由推入父节点的位置散列,似乎唯一的解决方案是使用这里提到的双iframe方法。

Resizing an iframe based on content

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39578440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档