【发布时间】:2013-02-01 12:03:48
【问题描述】:
我在 <html> 元素中放置了一个名为“no-js”的类。这表明用户没有使用 javascript,(无论是被禁用还是被阻止)。然后,在我创建的脚本文件中,我想撤销“no-js”并注入“js”,以便我可以确定用户是否通过类使用 javascript。我尝试通过查询 html 标签来使用replace() 方法,但它不起作用。这是我所拥有的:
var html = document.getElementsByTagName("html")[0];
if(html.className == "no-js") {
html.className.replace("no-js", "js"); // user has JS enabled
}
Google Chrome 或 Firefox 的错误控制台中没有错误,但也没有将 no-js 更改为 js。我会使用<noscript> 标签,但我喜欢保持它的标记部分干净。
【问题讨论】:
-
它不会就地替换。你必须做
html.className = html.className.replace("no-js", "js"); -
html.classList.remove('no-js'); html.classList.add('js');
标签: javascript html class replace classname