2014-04-24 11 views
13

मैं इस solution कोशिश कर रहा हूँ की संपत्ति 'getElementsByTagName' पढ़ा नहीं जा सकता लेकिन .getElementsByTagName() जो प्रयोग किया जाता है, एक त्रुटि का उत्पादन:Uncaught TypeError: अशक्त

var tags = document.body.getElementsByTagName("*"); 
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null 

यह इस त्रुटि क्यों उत्पादन किया जाता है और मैं इसे कैसे ठीक कर सकते हैं?

+0

'console.log (document.body) 'आपको क्या देता है? –

उत्तर

10

document.body शरीर तत्व बनाये जाने तक इसे एक मान निर्दिष्ट नहीं किया जाएगा।

<body> तत्व को <head> तत्व से <script> ले जाएं या किसी समारोह में रख (क्योंकि आप इसे में सभी तत्वों को प्राप्त करने की कोशिश कर रहे हैं, तो आप अंत शरीर तत्व के पर होना चाहते हैं) और उसे उस घटना से बुलाएं जो शरीर के निर्माण के बाद आग लगती है (जैसे windowload ईवेंट)।

+0

+1, अभी भी मेरे लिए बहुत तेज़ है। –

+0

... या इसे DOMContentLoaded/DOM- तैयार कॉलबैक के अंदर उपयोग करें – Utkanos

0

समारोह उदाहरण:

उदाहरण:

function init() { 
    alert("hello javascript"); 
}; 

window.addEventListener("load",init,false); 

$(document).ready(function() { 
    alert("hello jQuery"); 
}); 

http://jsfiddle.net/Ln5zu4Lt/

सावधान रहें, उपरोक्त जावास्क्रिप्ट उदाहरण पृष्ठ लोड (छवियों, iframes, आदि) के लिए इंतजार कर रहा है। यह jQuery के तैयार से अधिक समय लेता है।

65

ध्यान दें कि यह त्रुटि भी होती है यदि आप कम से कम 7 नवंबर, 2016 के लिए LastPass का उपयोग कर रहे हैं। मैंने सोचा कि यह मेरे कोड के साथ समस्या थी, लेकिन स्पष्ट रूप से यह नहीं है।

+7

क्रोम के लिए पुष्टि की गई LastPass इस त्रुटि को बना रहा था। विस्तार अक्षम कर दिया और इसे ठीक किया। – phocks

+0

दूसरी पुष्टि। ऐसा तब होता है जब भी मैं किसी पृष्ठ पर कहीं भी क्लिक करता हूं। – l3li3l

+1

LastPass बग को कैसे ठीक किया जाए? – YangMingYuan

संबंधित मुद्दे