【发布时间】:2014-03-22 11:23:51
【问题描述】:
我正在使用http://alexgorbatchev.com/SyntaxHighlighter/ 突出显示我网站上的代码,但有时在我的日志中我会收到这样的 Javascript 错误:
未捕获的 NotFoundError:无法在“节点”上执行“removeChild”:要删除的节点不再是该节点的子节点。也许它是在“模糊”事件处理程序中移动的?
未捕获的 NotFoundError:尝试在不存在的上下文中引用节点。
// set up handler for lost focus
attachEvent(textarea, 'blur', function(e)
{
textarea.parentNode.removeChild(textarea);
removeClass(highlighterDiv, 'source');
});
这里是 attachEvent() 函数代码:
function attachEvent(obj, type, func, scope)
{
function handler(e)
{
e = e || window.event;
if (!e.target)
{
e.target = e.srcElement;
e.preventDefault = function()
{
this.returnValue = false;
};
}
func.call(scope || window, e);
};
if (obj.attachEvent)
{
obj.attachEvent('on' + type, handler);
}
else
{
obj.addEventListener(type, handler, false);
}
};
谁能帮忙解决这个问题?
【问题讨论】:
-
什么是 textarea html ?如果可能的话,做一个小提琴。
-
textarea = document.createElement('textarea') 你可以在完整的源代码中看到它。你可以试试这个演示 netkoder.dk/netkoder/eksempler/eksempel0009.html 但错误不会正常发生。我有时只会在记录 javascript 错误的网站日志中收到错误消息。
-
attachEvent?那是从哪里来的?抱歉,不想费力地翻阅 4 个脚本文件来找到它。
-
它在上面链接的同一个文件中。
-
也许这是在尝试删除节点之前测试节点是否存在的解决方案,有人可以确认这会使错误消息消失吗? : if (textarea.parentNode) { textarea.parentNode.removeChild(textarea); }
标签: javascript