2014-12-13 87 views
-3

我有这样的:JavaScript“未定义”,为什么?我只是将它定义

<script id="wpcp_css_disable_selection" type="text/javascript"> 
    var e = document.getElementsByTagName('body')[0]; 
    e.setAttribute('unselectable','on'); 
</script> 

怎么说,控制台抛出这样的:

Uncaught TypeError: Cannot read property 'setAttribute' of undefined 
+0

如果'getElementsByTagName'没有返回任何元素,获取元素'[0]'将返回'undefined'。 – lonesomeday 2014-12-13 17:31:31

+1

你知道你可以做'document.body',假设元素当然可用,它看起来不是! – adeneo 2014-12-13 17:32:13

+2

如果'

-1

我认为body元素应该在HTML页面中。你可以这样检查:

var e = document.getElementsByTagName('body'); 
if(typeof e != 'undefined'){ 
    e[0].setAttribute('unselectable','on'); 
} 
+0

这不会产生任何'未定义的错误...为什么downvote? – Riad 2014-12-13 18:03:28

+0

所有这些都是压制错误。它实际上没有做任何事情。 – JJJ 2014-12-13 18:14:43

+0

@Juhana:虽然我不同意这个代码,但是防止'Uncaught TypeError'远没有做任何事情。 – dotpush 2014-12-13 19:41:31