[英]Load a new A-Frame Scene in new Window
I'm trying to load a new scene in a new window when you click a button.当您单击按钮时,我正在尝试在新的 window 中加载新场景。 For that, when you click on HTML button it opens a new window.为此,当您单击 HTML 按钮时,它会打开一个新的 window。
For that new window, I have below code:对于那个新的 window,我有以下代码:
let newWindow = window.open(); // Open a new window
let newHead = newWindow.document.head;
let newBody = newWindow.document.body;
let charset = document.createElement('meta');
charset.setAttribute('charset', 'UTF-8');
let aframe_script_1 = document.createElement('script');
aframe_script_1.setAttribute('src','https://aframe.io/releases/0.9.0/aframe.min.js');
let jquery_script_1 = document.createElement('script');
jquery_script_1.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js');
newHead.appendChild(charset);
newHead.appendChild(aframe_script_1);
newHead.appendChild(jquery_script_1);
let escena2 = document.createElement ('a-scene');
entidadBox2.setAttribute("id","box");
let geometry = "primitive:box";
entidadBox2.setAttribute("geometry","primitive:box");
entidadBox2.setAttribute("color", "#EF2D5E");
entidadBox2.object3D.position.set(0, 1.25, -5);
escena2.appendChild(entidadBox2);
newBody.appendChild(escena2);
However, the scene doesn't load in new window even though the new HTML contains the scene and the box.但是,即使新的 HTML 包含场景和框,场景也不会加载到新的 window 中。
Do you know how can I do it?你知道我该怎么做吗?
So basically, use the child document and add element after it is loaded所以基本上,使用子文档并在加载后添加元素
let newWindow = window.open(); // Open a new window
newWindow.onload = function () {
let doc = newWindow.document;
let newHead = newWindow.document.head;
let newBody = newWindow.document.body;
let charset = doc.createElement('meta');
charset.setAttribute('charset', 'UTF-8');
let aframe_script_1 = doc.createElement('script');
aframe_script_1.setAttribute('src','https://aframe.io/releases/0.9.0/aframe.min.js');
let jquery_script_1 = doc.createElement('script');
jquery_script_1.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js');
newHead.appendChild(charset);
newHead.appendChild(aframe_script_1);
newHead.appendChild(jquery_script_1);
let escena2 = doc.createElement ('a-scene');
entidadBox2.setAttribute("id","box");
let geometry = "primitive:box";
entidadBox2.setAttribute("geometry","primitive:box");
entidadBox2.setAttribute("color", "#EF2D5E");
entidadBox2.object3D.position.set(0, 1.25, -5);
escena2.appendChild(entidadBox2);
newBody.appendChild(escena2);
}
My js document:我的js文件:
window.onload = function() {
function showAlert() {
console.log("Start showAlert");
let newWindow = window.open();
newWindow.onload = function() {
console.log("Start new Window");
let newHead = newWindow.document.head;
let newBody = newWindow.document.body;
let charset = document.createElement('meta');
charset.setAttribute('charset', 'UTF-8');
let aframe_script_1 = document.createElement('script'); aframe_script_1.setAttribute('src','https://aframe.io/releases/1.0.3/aframe.min.js');
let jquery_script_1 = document.createElement('script'); jquery_script_1.setAttribute('src','https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js');
newHead.appendChild(charset);
newHead.appendChild(aframe_script_1);
newHead.appendChild(jquery_script_1);
console.log("Start 1");
let scene = document.createElement ('a-scene');
//escena2.setAttribute("embedded",true);
//escena2.style.height="300px";
//.style.width="50%";
let entidadBox2 = document.createElement ('a-box');
entidadBox2.setAttribute("id","box");
//let geometry = "primitive:box";
entidadBox2.setAttribute("geometry","primitive:box");
entidadBox2.setAttribute("color", "#EF2D5E");
entidadBox2.object3D.position.set(0, 1.25, -5);
scene.appendChild(entidadBox2);
console.log("Start 2");
newBody.appendChild(scene);
}
}
let elemBoton = document.createElement("button");
//elemBoton.setAttribute("type","button");
elemBoton.setAttribute("class","btn btn-primary btn-lg");
elemBoton.innerHTML = "Pulse";
elemBoton.setAttribute("style", "position:absolute;top:150px;right:60px;");
elemBoton.onclick = showAlert;
};
However, the html in the new window is empty and it doesn't load the new scene.但是,新的 window 中的 html 是空的,不会加载新场景。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.