Jac*_*ton 5 html javascript replace class classname
我在我的<html>元素"no-js"中放了一个类.这表示用户未使用javascript(无论是禁用还是阻止).然后,在我创建的脚本文件中,我想撤销"no-js"并注入"js",以便我可以确定用户是否通过类使用javascript.我尝试replace()通过查询html标签来使用该方法,但它无法正常工作.这就是我所拥有的:
var html = document.getElementsByTagName("html")[0];
if(html.className == "no-js") {
html.className.replace("no-js", "js"); // user has JS enabled
}
Run Code Online (Sandbox Code Playgroud)
Google Chrome或Firefox的错误控制台中没有错误,但也没有更改no-js为js.我会使用<noscript>标签,但我喜欢保持它的标记面干净.
replace 返回新字符串,它不会修改原始字符串.
试试html.className = 'js',因为你已经确定它是你if声明的唯一类名.
编辑:此外,<html>标签已经可用document.documentElement.
document.documentElement.className = 'js';
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的,真的.没有if陈述,没有变数,没有.
接受的答案确实是正确的,但这种方式将取代所有类别<html>,不仅如此.no-js.
这个小脚本会做同样的事情,但只会搜索no-js类并重写它.
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
Run Code Online (Sandbox Code Playgroud)
从这里开始编写脚本,非常简单! http://snipplr.com/view/63895/remove-nojs-class-from-html-tag-add-js-class/