仅在禁用JavaScript时显示“启用JavaScript”消息

时间:2011-03-17 02:44:27

标签: javascript jquery

我希望在禁用JavaScript的情况下向用户显示“请启用JavaScript”的消息。我想要那条消息,禁用JavaScript时不会显示任何其他内容。

因此,为此,我可以将消息放入DOM并使用display:none隐藏所有其他元素。然后在JavaScript中我可以设置消息显示隐藏并显示所有其他元素。

但是我用这种方法得到了一个闪烁。在隐藏之前,错误消息会显示一段时间(特别是在移动浏览器上)。

如何最小化显示错误消息的时间?

6 个答案:

答案 0 :(得分:15)

您正在寻找<noscript> tag

答案 1 :(得分:3)

内联javascript必须在加载其余文档之前运行。您可以使用此行为向页面添加样式以隐藏所需元素,元素加载之前。理论上,这应该在所有浏览器(包括移动设备)中停止FOUC。这是一个独立HTML的示例,向没有javascript的人显示消息。这项技术也照顾了Hussein提到的关于阻止javascript的防火墙的内容:

<!doctype html>
<html>
<head>
<title>No FOUC</title>
<script type="text/javascript">
document.write('<style type="text/css">#no-js { display: none; }</style>');
</script>
</head>
<body>
<div id="no-js">You don't have javascript, BOOOO</div>
</body>
</html>

答案 2 :(得分:0)

你可以这样做。如果JavaScript被禁用,它将显示消息“JavaScript Disabled”

 <p id="jsDisabled">JavaScript disabled.</p>

<script type="text/javascript">
    function hideScriptDisabled() {
        document.getElementById("jsDisabled").display = "none";
    }
    hideScriptDisabled();
    </script>

如果这会产生闪烁问题,请使用类似的内容

document.write(".jsDisabled { display: none; }");

答案 3 :(得分:0)

答案 4 :(得分:-1)

避免javascript禁用问题。

在您开始在您的网页上写任何内容之前,请输入以下代码。

<!-- saved from url=(0014)about:internet-->

您不得向最终用户提出任何问题。

首先尝试一下。

答案 5 :(得分:-3)

你真的不能。闪烁就是这样...特别是在慢速移动设备上(即诺基亚......哦,我如何讨厌诺基亚!)

唯一的另一个选择是首先加载启动页面。在HEAD中添加几秒的元刷新,刷新为“打开javascript错误”。在BODY上,添加一个应立即触发的javascript重定向。

您仍然会有一个闪存,当然还有一个页面请求到服务器。但它可能是一个“更漂亮”的闪光。