Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js在代码笔中工作,但在本地文件中不工作_Javascript_Html - Fatal编程技术网

Javascript js在代码笔中工作,但在本地文件中不工作

Javascript js在代码笔中工作,但在本地文件中不工作,javascript,html,Javascript,Html,我正试图通过单击模态外部来关闭模态。它在codepen上的pen中工作正常,但在codepen项目或本地文件中工作不正常。我错过了什么 我的HTML文件中的头代码是: <head> <link rel="stylesheet" type="text/css" href="style.css"> <script src="https://ajax.googleapis.com/ajax/li

我正试图通过单击模态外部来关闭模态。它在codepen上的pen中工作正常,但在codepen项目或本地文件中工作不正常。我错过了什么

我的HTML文件中的头代码是:

<head>
  <link rel="stylesheet" type="text/css" href="style.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script type="text/javascript" src="script.js"></script>
  <title></title>
</head>
我还尝试将js直接放在HTML文件的脚本标记中,该文件也没有运行

<script type="text/javascript">
    var modal = document.getElementById('id01');

    window.onclick = function(event) {
        if (event.target == modal) {
            modal.style.display = "none";
        }
    }
</script>

var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}

以下是完整的代码:

在这里似乎也可以,您的代码是正确的。也许你打错了身份证?
var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}

这里
这里似乎也行,你把它编对了。也许你打错了身份证?
var modal=document.getElementById('id01');
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}

此处
您应该检查您的
文件位于何处。此文件可能与正在打开的页面不在同一目录中,因此无法加载。在谷歌浏览器中按Ctrl+Shift+I,检查控制台是否有任何错误。检查脚本位置是否与正在打开的页面相关。

您应该检查
文件的位置。此文件可能与正在打开的页面不在同一目录中,因此无法加载。在谷歌浏览器中按Ctrl+Shift+I,检查控制台是否有任何错误。检查脚本位置是否与正在打开的页面相关。

在正文标记的末尾而不是标题标记之前添加脚本。是否在本地工作?然后检查控制台中是否有错误console显示没有错误,并且更改脚本是在主体中还是在头部中也没有区别。很可能
modal
null
,因为您调用
document.getElementById('id01')
,位于HTML文件中实际
元素之前的某个位置,所以当你试图引用它时,它还不存在。你确定你把它放在身体的末端而不是开始?请在
onclick
函数中设置一个断点,单步执行代码,并检查
modal
event.target的值以查看发生了什么。事实上,我觉得如果(event.target!==modal)
-另外,如果用户在子元素上单击模态内部的某个位置,该怎么办?将其放在body标记的底部很有效!非常感谢!我不确定如何将此标记为已回答,因为这是一条注释,而不是答案。请在body标记的末尾而不是head标记之前添加脚本。是否在本地工作?然后检查控制台中是否有错误console显示没有错误,并且更改脚本是在主体中还是在头部中也没有区别。很可能
modal
null
,因为您调用
document.getElementById('id01')
,位于HTML文件中实际
元素之前的某个位置,所以当你试图引用它时,它还不存在。你确定你把它放在身体的末端而不是开始?请在
onclick
函数中设置一个断点,单步执行代码,并检查
modal
event.target的值以查看发生了什么。事实上,我觉得如果(event.target!==modal)
-另外,如果用户在子元素上单击模态内部的某个位置,该怎么办?将其放在body标记的底部很有效!非常感谢!我不确定如何将其标记为已回答,因为这是一条注释,而不是答案。它位于同一目录中,但我也测试了将其放在自己的目录中,并将路径更改为/js/script.js或/js/script.js。没有从控制台获取任何错误。然后您应该开始逐步调试:1)分配简单的事件,如console.write或window.alert,单击事件中的任何单词,您可以在此处检查是否捕捉到单击事件2)然后开始添加代码,步骤很小,如获取、存储和显示数据,然后你会发现你的问题所在。它在同一个目录中,但我也测试了将它放在自己的目录中,并将路径更改为/js/script.js或/js/script.js。没有从控制台获取任何错误。然后您应该开始逐步调试:1)分配简单的事件,如console.write或window.alert,单击事件中的任何单词,您可以在此处检查是否捕捉到单击事件2)然后开始添加代码,步骤很小,如获取、存储和显示数据,然后你会发现你的问题所在。
<script type="text/javascript">
    var modal = document.getElementById('id01');

    window.onclick = function(event) {
        if (event.target == modal) {
            modal.style.display = "none";
        }
    }
</script>