Javascript 为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?

Javascript 为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?,javascript,html,css,navigation,Javascript,Html,Css,Navigation,我正在建立一个网站,我有一个由JS控制的移动下拉菜单(在400px以下的设备上显示@media querys)。我的网站是(我正在谈论的页面是直播的),移动导航可以在我的所有其他页面上工作,但不能在我的政治页面上工作。不起作用的是,打开和关闭导航下拉菜单的栏不旋转,主体未设置为位置:固定。为什么我的JS在我所有的页面上都工作,除了政治 谢谢 另外,我可以提供代码,但它像250+行,在不同的文件中,所以我认为最好是你在我的网站上查看它。(我不想让人觉得我懒惰,所以如果你想要代码,只要问一下,我就会

我正在建立一个网站,我有一个由JS控制的移动下拉菜单(在400px以下的设备上显示@media querys)。我的网站是(我正在谈论的页面是直播的),移动导航可以在我的所有其他页面上工作,但不能在我的政治页面上工作。不起作用的是,打开和关闭导航下拉菜单的栏不旋转,
主体
未设置为
位置:固定。为什么我的JS在我所有的页面上都工作,除了政治

谢谢


另外,我可以提供代码,但它像250+行,在不同的文件中,所以我认为最好是你在我的网站上查看它。(我不想让人觉得我懒惰,所以如果你想要代码,只要问一下,我就会提供)

为什么我的JS mobile nav只能在我的所有页面上工作,只有一个页面除外?

因为你有一个javascript错误

检查浏览器控制台,您将看到:

TypeError:null不是对象(计算'document.getElementById(“javascript_警告”).style')

如果查看politics.js文件的第331行,您将看到以下函数:

// Hides javascript warning message
function myFunction() {
    document.getElementById("javascript_warning").style.display = "none";
}
这就是导致错误的原因,因为document.getElementById(“javascript_警告”)为null,并且您正试图对其调用样式

确保元素首先存在,例如

// Hides javascript warning message
function myFunction() {
    var elem = document.getElementById("javascript_warning");
    if (elem != null) {
        elem.style.display = "none"
    }
};
快速解决方法是:

删除此行

var body = document.getElementsByTagName("BODY")[0];
将这些行中的“body”替换为“document.body”:

body.style.position = "fixed";
body.style.position = "";

您还应该更正console中出现的其他错误。

我们不需要查看所有250+行,只需要查看那些可能影响下拉列表的行。另外,您是否在控制台中看到任何错误?(点击F12)@MikeC这是一个单独的JS脚本,它抛出了一个错误,导致我的JS的其余部分无法工作,谢谢你的提示!是的,我意识到这是一个错误。很抱歉谢谢你处理JS的错误!谢谢你的代码瘦身和努力!我接受另一个答案,因为它是第一个,而且更彻底。再次感谢!