【发布时间】:2016-09-28 12:44:07
【问题描述】:
我有一个 Javascript 单页应用程序,其中包含大量代码。
主要思想是我的应用程序创建画布并在其中绘制各种东西 基于各种数据。
每个画布都在一个 div 容器中。每个 div 容器还在画布旁边包含一个段落。
在 Chrome 和 Firefox 中一切正常,但在 IE 11 中发生了一些奇怪的事情:
容器 div 在附加到主文档后为空。 我也不知道为什么。
另一个奇怪的事情是,如果我通过在附加容器 div 的部分之后插入以下代码来破坏应用程序,那么画布和段落也会被附加并且可见两个:
var foo = some_var; //where some_var is undefined
所以,代码很大,但这里是一个示例,只是为了提出一个想法:
A.js 文件:
var paragraph = document.createElement("p");
var textnode = document.createTextNode("some text");
var div = document.createElement("div");
paragraph.appendChild(textnode);
div.appendChild(paragraph);
div.appendChild(canvas);
someOBJ.html = div;
B.js 文件:
var parent2 = document.getElementById(parentId);
parent2.innerHTML = "";
parent2.style.width = '100%';
//someOBJs is an array of someOBJ from the A.js file
for(var i = 0; i < someOBJs.length; i++){
parent2.appendChild(someOBJs[i].html);
}
如果我在此处插入上面提到的中断代码(使用未定义的代码),则附加画布和段落,否则仅附加 div 容器 (someOBJs[i].html)
【问题讨论】:
-
控制台错误?
-
@mplungjan 如果我不插入破坏代码,则不会显示错误
-
我看到你在附加
canvas,但它是在哪里定义的?我认为我们遗漏了一些代码。 -
@ps2goat 画布在另一个文件中定义。
-
您应该将该文件的最少详细信息放在此问题中,否则这对处于类似情况的人没有帮助。
标签: javascript html