在 Lynx 中查看我的网页时如何隐藏 div?

问题描述 投票:0回答:3

我的网站有一个 div 元素(以块的形式),每当用户通过不支持 JavaScript 的基于文本的浏览器(如 Lynx)访问该网站时,我希望使其不可见。

基本上我需要编写什么命令或代码才能实现这一点?

javascript html hide lynx
3个回答
3
投票

由于您无法在那里运行 javascript,因此您必须首先不要发送该 div,以使其在文本模式浏览器中不可见。

您可以进行服务器端用户代理检查,并且不渲染该 div。 Lynx 用户代理: http://www.useragentstring.com/pages/Lynx/


0
投票

您可以默认设置div

invisible

并在你的 js 代码中将其设为
visible

因此它不会出现在文本模式浏览器上。


0
投票

在提出最初的问题 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 代码完好无损。

© www.soinside.com 2019 - 2024. All rights reserved.