Javascript 未捕获的TypeError:无法读取null的属性addEventListener

Javascript 未捕获的TypeError:无法读取null的属性addEventListener,javascript,Javascript,我正在为我的javascript类做一个作业,我不断得到错误 fetch_page.js:109未捕获类型错误:无法读取null的属性“addEventListener” 在addEventListeners(fetch_page.js:109) 在fetch_page.js:121 我将是最诚实的,我不懂javascript的废话,但我被迫参加这门课程,我的网络管理学位。有人能指出我在哪里犯了这个错误吗 window.addEventListener('DOMContentLoaded',(

我正在为我的javascript类做一个作业,我不断得到错误

fetch_page.js:109未捕获类型错误:无法读取null的属性“addEventListener” 在addEventListeners(fetch_page.js:109) 在fetch_page.js:121

我将是最诚实的,我不懂javascript的废话,但我被迫参加这门课程,我的网络管理学位。有人能指出我在哪里犯了这个错误吗

window.addEventListener('DOMContentLoaded',(function()){
var含量;
var协议;
var主机名;
var目录;
var文件;
函数parseBase(){
var pos、slashPos;
var余数;
pos=BASE.indexOf('://');
协议=BASE.substr(0,pos);
余数=基本子项(位置+3);
slashPos=余数.indexOf('/');
如果(slashPos===-1){
主机名=余数;
目录=”;
file=“”;
}否则{
主机名=余数.substr(0,slashPos);
余数=余数.substr(slashPos+1);
slashPos=余数.lastIndexOf('/');
如果(slashPos===-1){
目录=”;
文件=余数;
}否则{
directory=rements.substr(0,slashPos);
file=rements.substr(slashPos+1);
}
}
日志(“协议:”,协议);
log(“主机名:”,主机名);
log(“目录:”,目录);
log(“文件:”,文件);
}
函数relativeToAbsolute(url){
if(url.indexOf('://')>-1{//http://somedomain.com/path/file.html
返回url;
}else if(url[0]=='/'){///path/file.html
返回协议+“:/”+主机名+url;
}else{//path/file.html
如果(目录==“”){
返回协议+“://”+主机名+“/”+url;
}否则{
返回协议+“://”+主机名+“/”+目录+“/”+url;
}
}
}
函数parsePage(){
var parser=新的DOMParser();
contents=parser.parseFromString(atob(PAGE),“text/html”);
控制台日志(内容);
}
函数moveChildren(源、目标){
while(source.childNodes.length>0){
var child=source.childNodes[0];
来源:removeChild(儿童);
目的地:子(child);
}
}
函数fixTags(标记名、属性){
var tags=contents.getElementsByTagName(标记名);
用于(变量计数器=0;计数器
正文{
边际:0px;
}
#搜索框{
背景:黑色;
颜色:白色;
宽度:100%;
文本对齐:居中;
垂直对齐:中间对齐;
填充:10px;
}
#戈布顿{
背景:红色;
颜色:黑色;
填充:4px
字体大小:粗体;
字体系列:Arial;
字体大小:.75em;
垂直对齐:中间对齐;
光标:指针;
}
#urlBox{
宽度:50%
}
#内容{
边框:1px纯黑;
}

获取页面
var BASE=“”;
var PAGE=“”;

在此处键入URL:这两个document.getElementById调用之一返回null,因为没有具有该Id的元素。您可以在代码中的调试控制台中添加断点,或添加console.log以确定问题发生的确切位置

    document.getElementById('goButton').addEventListener('click', submit);
    document.getElementById('urlBox').addEventListener('keydown', function(event) {

你的错误是什么意思

这可以归结为:

您试图在
addEventListeners
函数中访问某个对象的
addEventListener
属性,但该属性为
null

查看
添加的监听器

document.getElementById('goButton').addEventListener('click', submit);
document.getElementById('urlBox').addEventListener('keydown', function(event) {
    if (event.keyCode == 13 || event.keyCode == 10) {
        submit();
    }
});
其中一个
getElementsById
调用返回null,表示代码中没有此类ID

查看HTML后,您可以看到问题出现在以下位置:


刚刚经历了类似的事情。向“我的脚本”标记添加延迟解决了以下问题:

<script src="fetch_page.js" defer></script>


祝你好运~E

除了任何键入错误,如省略引号,请尝试在哪一行中延迟获得错误?我们无法挽救此转储代码。请a)删除PHP如果这是一个JS问题,用真实的东西替换echo。和b)在此处修复您的报价
id=urlBox”>
请查看并使用
[]
snippet editor它的设计方式your submit only console.log s输入url,而不是调用php从网络读取url。您能解释一下JavaScript在做什么吗?它似乎是在加载DOM后重建DOM,也许它没有复制要添加侦听器的元素。您还应该添加如果可能的话,确认跟踪。这两个ID都存在于HTML中,知道为什么找不到它们吗
<script src="fetch_page.js" defer></script>