我的网站有一个 div 元素(以块的形式),每当用户通过不支持 JavaScript 的基于文本的浏览器(如 Lynx)访问该网站时,我希望使其不可见。
基本上我需要编写什么命令或代码才能实现这一点?
由于您无法在那里运行 javascript,因此您必须首先不要发送该 div,以使其在文本模式浏览器中不可见。
您可以进行服务器端用户代理检查,并且不渲染该 div。 Lynx 用户代理: http://www.useragentstring.com/pages/Lynx/
您可以默认设置div
invisible
。visible
。在提出最初的问题 10 多年后跳入:显然,不支持 JavaScript 的纯文本浏览器很难被消灭。
仅考虑 Lynx 时,接受的服务器端用户代理检查答案是有效的,但除了 Lynx 之外还有其他文本浏览器,并且“常规”浏览器也可能禁用了 JavaScript。
一般方法是向所有人展示页面的无 JavaScript 版本,然后通过 JavaScript 在支持它的浏览器中插入 HTML 标签。现在,我更喜欢保持 JS 代码干净,不要将其与 HTML 混合太多,尤其是对于这种不常见的用途。因此,我使用以下方法(在 HTML 文件中):
<!-- This template holder div is shown to everyone, but it's empty -->
<div id="template-holder"></div>
<!-- This template is parsed only by browsers with JS support -->
<script id="template" type="text/html">
<!-- This is the div you want to hide from browsers without JS support -->
<div id="hide-me">...</div>
</script>
<!-- Use JS (where available) to insert the template into the template holder -->
<script>
document.getElementById("template-holder").innerHTML =
document.getElementById("template").innerHTML;
</script>
<!-- We're done! -->
这样所有 HTML 代码都保留在原始文件中,并且我们保持原始 JS 代码完好无损。