class= "no-js" 但 JavaScript 正在工作 Wordpress



当我访问我的任何网站页面时,它说:class="no-js",但我确实有JavaScript并且它正在按预期工作。我在wordpress上使用插件"自定义javascript",而不是使用硬编码的enqueue函数。但是由于它正在工作,我不明白问题是什么。但是今天我使用的另一个插件停止显示并给了我这个错误:noscript class="noscript-message" 消息:此内容需要 JavaScript。所以很明显有些不对劲。有人知道为什么吗?下面是我的JavaScript代码

jQuery( document ).ready(function() {
img = new Image();
	div = document.getElementById('sidebar');
	img.onload = function() {
		div.parentNode.insertBefore(img, div.nextSibling).style.marginTop = "-115px";
	};
	img.src = '....../.png';
x=document.getElementsByClassName("next page-numbers");
for(var i = 0; i < x.length; i++){
x[i].innerText="Nästa →";
}
y=document.getElementsByClassName("prev page-numbers");
for(var i = 0; i < y.length; i++){
y[i].innerText="← Tillbaka";
}
jQuery( "li.current_page_item" ).each(function( index ) {
jQuery(this).parent('.sub-menu').slideToggle('fast');
jQuery(this).parent().parent('.sub-menu').slideToggle('fast');
					jQuery(this).parent().parent().parent('.sub-menu').slideToggle('fast');
});
jQuery( "li.current-menu-parent" ).each(function( index ) {
jQuery(this).parent('.sub-menu').slideToggle('fast');
jQuery(this).parent().parent('.sub-menu').slideToggle('fast');
jQuery(this).parent().parent().parent('.sub-menu').slideToggle('fast');
});
});

无论什么no-js类添加到你的身体中,显然都不应该这样做,这就是你需要研究的。

停止工作的插件可能正在检查该类是否存在,并且由于它找到了它,它只是:对不起,伙计,我需要 JavaScript 才能正常运行

你应该做的是查明是什么在你的身体上增加了no-js类以及为什么。这才是正确的行动。但是,这可能被证明是困难和耗时的。

如果您正在寻找快速而肮脏的解决方案,请使用以下命令:

(function($){
$(document).on('ready', function(){
$('body').removeClass('no-js');
})
})(jQuery)

一旦构建了 DOM,它将立即从您的<body>元素中删除no-js类,使用jQuery(已经存在于 WordPress 中),这是JavaScript。如果脚本运行,js是功能性的,所以类不应该出现在<body>上,对吧?我在document.ready上运行脚本,因为 WordPress 中的大多数脚本都绑定到window.load,它在document.ready之后运行,所以这个脚本很可能会在你的插件之前运行。


您的插件有可能在实际构建页面并在其上运行之前检查no-js是否存在于php<body>上,javascript。如果要删除该级别的类,则应将其添加到主题的functions.php中:

add_filter( 'body_class', 'remove_nojs_from_body', 10, 1 );
function remove_nojs_from_body( $classes ) {
if (in_array('no-js', $classes)) {
unset( $classes[array_search('no-js', $classes)] );
}
return $classes;
}

最新更新