Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iframe中的Angular应用程序_Javascript_Html_Angularjs_Iframe - Fatal编程技术网

Javascript iframe中的Angular应用程序

Javascript iframe中的Angular应用程序,javascript,html,angularjs,iframe,Javascript,Html,Angularjs,Iframe,我编写了angular应用程序(web聊天),它工作得非常好。需要将其与主网站集成,我决定使用iframe将其集成。为此,我为主网站编写了一个小JS文件,在必要的地方创建iframe插入。问题是,当我想将angular应用程序异步加载到iframe时,它会加载内容,但应用程序未初始化。当我为iframe指定src属性时,它会正常加载应用程序。你曾经用iframes面对过这个问题吗?我做错了什么 //Specify URL for iframe - works (function(url, lan

我编写了angular应用程序(web聊天),它工作得非常好。需要将其与主网站集成,我决定使用iframe将其集成。为此,我为主网站编写了一个小JS文件,在必要的地方创建iframe插入。问题是,当我想将angular应用程序异步加载到iframe时,它会加载内容,但应用程序未初始化。当我为iframe指定src属性时,它会正常加载应用程序。你曾经用iframes面对过这个问题吗?我做错了什么

//Specify URL for iframe - works
(function(url, lang) {

    function init() {
        var footer = document.getElementsByClassName('footer');
        var iframe = document.createElement('iframe');
        iframe.src = url + "#/auth/" + lang + "";
        footer[0].parentNode.insertBefore(iframe, footer[0]);
    }

    function fetchChat(response) {
        var o = new XMLHttpRequest;
        o.onreadystatechange = function() {
            if (4 == o.readyState && 200 == o.status) {
                applyChatToIframe(o.response);
            }
        }, o.open("GET", url, !0), o.send(null) 
    }

    function applyChatToIframe(response) {
        document.querySelectorAll('iframe')[0].contentDocument.write(response);
    }

    init();

})(SOME_URL, conf.lang || "az");




//Trying to load angular app via AJAX to iframe - doesnt work
(function(url, lang) {

    function init() {
        var footer = document.getElementsByClassName('footer');
        var iframe = document.createElement('iframe');
        footer[0].parentNode.insertBefore(iframe, footer[0]);
        fetchChat(url + "#/auth/" + lang + "");
    }

    function fetchChat(response) {
        var o = new XMLHttpRequest;
        o.onreadystatechange = function() {
            if (4 == o.readyState && 200 == o.status) {
                applyChatToIframe(o.response);
            }
        }, o.open("GET", url, !0), o.send(null) 
    }

    function applyChatToIframe(response) {
        document.querySelectorAll('iframe')[0].contentDocument.write(response);
    }

    init();

})(SOME_URL, conf.lang || "az");

角度库在哪里加载?主框架还是在iframe中?iframe需要它自己的库实例,除非你要进行大量的帧间通信。@zero298所有相关的angular应用程序都加载在iframe中。这就是为什么第一个示例有效,而第二个则无效。@bigweb您找到解决方案了吗?我正在尝试在inframe中托管两个angular应用程序