我正在开发一个Web3D应用程序,我在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>Javascript代码,它在我单击一个按钮后将上面的代码放在iframe的适当块中:
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浏览器的调试结果表明,插入了所需的代码,但实际模型没有使用适当的纹理更新。
一定有什么地方我漏掉了,但是我找不到解决方案。任何帮助都将不胜感激。
发布于 2013-03-23 20:06:05
修复:问题出在Google Chrome。我在Mozilla Firefox中测试了Web应用程序,一切正常:)
此外,我在子html文件中尝试了Javascript代码,它可以在Chrome中运行。当父html文件在iframe块中加载子html文件时,它就会拒绝工作。
https://stackoverflow.com/questions/15576740
复制相似问题