TypeError: Unable to get value of the property 'childNodes': object is null or undefinedundefined
在对我的应用程序进行一长串修改以支持IE8之后,包括: 通过W3C验证器以编译形式运行所有视图,设置xdomain.js proxy以支持CORS API调用,进行一些常规重组等。 我非常失望地发现IE8仍然会在我身上抛出这个奇怪的错误,而IE9的效果非常好。
Making changes to the Angular-seo package以防止客户端是IE浏览器时运行。
关于它可能是什么的任何想法?。
答案 0 :(得分:2)
确保正确关闭所有标签。我花了好几个小时试图弄清问题是什么,直到我在我的代码中注意到这一点:
<span>some text<span>
我终于意识到我没有正确关闭<span>
标签。之后一切正常。
答案 1 :(得分:1)
如果没有您运行的代码,则有点困难。但是,有一个用于调试的命令。首先,您需要确定哪个变量可能不包含对象[即 &#34;对象为空或未定义&#34;]。 例如,父,那么你可以使用
//next look to see if parent is something
if('undefined'==(typeof parent)) alert("variable empty:parent");
一旦你发现一些你想要成为对象的空的东西,那么你可以从那里追溯。还可以使用浏览器调试工具来识别错误的行号。
通常,如果使用子节点,您可能没有正确的级别,或者您需要作为数组访问,即您需要类似的东西。
parent.childNodes[0].childNodes[0].value
在IE中,您还处理不受支持的功能。所以getElementById会起作用,但其他一些类似的则不行。 typeof也很有用。
//next ensure function supported
if( 'undefined'==(typeof document.getElementsByClassName) ){
alert("Not Supported"); // notice ^ no () required here
//...add code to handle differently when not supported
}
这可能会揭示您是否可以使用功能
答案 2 :(得分:1)
IE8太旧且不符合标准,不支持childNodes []。 http://quirksmode.org/dom/core/#t70