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