我在用 Javascript 动态填充表格时遇到一些奇怪的问题。请看以下内容:
/**
* Create dynamic table and populate column names
*/
function createTableHeaders() {
var table = document.getElementById("list-contain").getElementsByTagName("tbody")[0];
var row = document.createElement('tr');
table.appendChild(row);
var th;
for(var i=0; i<columns.length; i++) {
th = document.createElement('th');
th.appendChild(document.createTextNode(columns[i]));
table.rows[0].appendChild(th);
}
}
其中“列”是在我的代码的另一部分中填充的文本字符串数组。我遇到了非常具体的症状:
- 表格已正确填充,迭代“columns”数组中的所有项目。
- 我在 Firebug(Firefox 调试器)和 IE9 中遇到不同的错误。
在 Firefox 中,我在 nsIDOMHTMLTableSectionElement.appendChild 上收到 NS_ERROR_INVALID_POINTER。
在 Internet Explorer 9 中,我遇到两个错误:
- SEC7111:HTTPS 安全性受到 javascript:void(0) 的损害
- SCRIPT5022:DOM 异常:HIERARCHY_REQUEST_ERR (3)
我认为第一个 IE 错误与我的代码中的其他内容有关,但我不知道为什么 Firefox 和 IE 会给出不同的 DOM 错误。该表在两个浏览器中仍然正确填充,我不知道为什么他们会抛出这些错误但又正确执行代码。
如果有人在这些问题上有经验/见解,我将非常感谢您的帮助! :)
最佳答案
问题已解决;我使用的语法是正确的,但事实证明我用来对表进行排序的另一个脚本出了问题。该表最初是静态 HTML,当我使用 Javascript 生成它时,排序脚本崩溃了。 :)
关于Javascript DOM 无效指针错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142449/