我正在开发一个Web 3D应用程序,我在Javascript中生成了一些代码,这些代码在iframe中将模型包含在外部.html文件中实现以下标记。
在外部.html文件的X3D代码块中的<appearance>
元素中:
<texture id="XXX" repeats="true" repeatt="true" url="" scale="true"
hidechildren="true">
<img src="" attr=".../BMW.jpg" style="display: none; visibility: hidden;">
</texture>
我单击按钮后将上述代码放在iframe中相应块中的Javascript代码:
ogl = true;
function toggleTexture(){
if (!ogl) {
var t = document.createElement("Texture");
t.setAttribute("id", "XXX");
t.setAttribute("repeatS", "true");
t.setAttribute("repeatT", "true");
var imgElement = document.createElement("img");
imgElement.setAttribute("src", "../HomeFurniture/assets/BMW.jpg");
t.appendChild(imgElement);
var iframe = document.getElementById("frame");
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
innerDoc.getElementById("anApp").appendChild(t);
innderDoc.x3dom.reload();
} else {
var iframe = document.getElementById("frame");
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
var ot = innerDoc.getElementById("anApp");
ot.removeChild(innerDoc.getElementById('XXX'));
}
return false;
}
Chrome浏览器调试的结果显示插入了所需的代码段,但实际模型未使用适当的纹理进行更新。
必须有一些我想念的东西,但我找不到解决方案。任何帮助将不胜感激。
答案 0 :(得分:2)
修复:问题是Google Chrome。我在Mozilla Firefox中测试了Web应用程序,一切正常:)
此外,我在子html文件中尝试了Javascript代码,它可以在Chrome中运行。当父html文件在iframe块中加载子html文件时,它只是拒绝工作。