javascript - 有没有更好的方法来根据 JS 的存在来隐藏/显示元素?

标签 javascript css

此刻在 <head>我的网站我有

<script>
    document.write('<style>.jshide{display:none},.jsshow{display:block},.jsblank{visibility:hidden}</style>')
</script>

我的想法是,如果启用了 JS,我不想显示我网站上的某些元素。例如,可能是表单提交按钮,因为如果启用了 JS,表单将改为使用 ajax 下拉列表。

我可以在页面加载后使用 JS 脚本以编程方式隐藏它们,但这会导致令人沮丧的闪烁等。

虽然我已经坚持了十年,但我想知道在更现代的时代是否有更好的方法来实现相同的最终目标?

谢谢

最佳答案

You should not use document.write .相反,使用

var style = document.createElement('style');
style.textContent = '.jshide{display:none}, .jsshow{display:block}, .jsblank{visibility:hidden}';
document.querySelector('head').appendChild(style);

除此之外,您的方法非常好。

关于javascript - 有没有更好的方法来根据 JS 的存在来隐藏/显示元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999505/

相关文章:

javascript - 向移动菜单添加下拉和折叠功能

javascript - AngularJS 密码确认 noMatch 工作但表单 $ 无效?

javascript - 防止默认后重新创建自然链接点击事件

html - <li> 元素 float 在绝对定位框内 IE8 及以下

css - IE8 中实心字段集边框的问题

javascript - 鼠标焦点没有轮廓但键盘焦点仍然有轮廓?

javascript - 周突出显示在鼠标悬停时无法正常工作

javascript - 命名函数与匿名函数 : Identical?

javascript - IE8 在什么情况下会阻止 Javascript?如何避免?

javascript - 水平图像 slider 在 chrome 和 IE11 中不起作用