Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“显示”;启用JavaScript“;仅当禁用JavaScript时才显示消息_Javascript_Jquery - Fatal编程技术网

“显示”;启用JavaScript“;仅当禁用JavaScript时才显示消息

“显示”;启用JavaScript“;仅当禁用JavaScript时才显示消息,javascript,jquery,Javascript,Jquery,我想在禁用JavaScript的情况下向用户显示一条消息,上面写着“请启用JavaScript”。我希望在禁用JavaScript时显示该消息,而不显示任何其他内容 因此,要做到这一点,我可以将消息放在DOM中,并使用display:none隐藏所有其他元素。然后在JavaScript中,我可以将消息设置为显示隐藏和显示所有其他元素 但这种方法让我有了一种闪现。错误消息在隐藏之前会显示一段时间(特别是在移动浏览器上) 如何缩短错误消息显示的时间?您正在查找错误消息。您真的不能。闪烁就是这样…尤其

我想在禁用JavaScript的情况下向用户显示一条消息,上面写着“请启用JavaScript”。我希望在禁用JavaScript时显示该消息,而不显示任何其他内容

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

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


如何缩短错误消息显示的时间?

您正在查找错误消息。

您真的不能。闪烁就是这样…尤其是在速度较慢的移动设备上(即诺基亚…哦,我多么讨厌诺基亚!)

唯一的其他选择是先加载启动页。在头部添加几秒钟的元刷新,该刷新将刷新为“打开javascript错误”。在主体上,添加一个应立即触发的javascript重定向


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

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


请参见

在加载文档的其余部分之前,必须先运行内联javascript。您可以使用此行为向页面添加样式,以在加载元素之前隐藏所需元素。从理论上讲,这将阻止所有和每个浏览器(包括手机)的FOUC。下面是一个独立HTML的示例,它向没有javascript的用户显示一条消息。这项技术还解决了Hussein提到的防火墙阻止javascript的问题:


无FOUC
write('#no js{display:none;}');
你没有javascript,BOOOO

以避免javascript禁用问题

在开始在你的网页上写作之前,只需输入以下代码

您必须永远不要向最终用户询问任何问题


首先尝试一下。

顺便说一句,你看到的行为通常被称为--“fouc”,这可能有助于你的谷歌达到理想状态,但无法解决诺基亚手机上的闪烁问题。我收回这一点……这可能行得通。NOSCRIPT中的错误消息,然后是隐藏div中的主要内容,然后通过javascript显示。从空白到内容的闪烁都会出现,但这可能比从错误到内容的闪烁要好。(缓慢的诺基亚设备可能仍会看到内容闪烁,但如果您将NOSCRIPT区域设置得足够高,则会使其脱离屏幕)
。正确的方法是使用
display:none
显示:块如我在回答中所述。您拥有123k的声誉,并推荐
??@Hussein:这就是如何防止闪烁。您也可以在父元素开始之后,在其内容之前隐藏它。@Hussein:没有必要粗鲁无礼。首先你说@SLaks不应该推荐noscript,因为他有123k的声誉。现在你指责我“没有理解”你上面说的话,而事实上你没有说任何话来支持你对noscript标签的非理性恐惧。这些都是不合理的论据。仅仅因为有其他方法来模拟某个标记的行为并不意味着不应该使用它。从对答案的投票来看,大多数人似乎都同意。您刚刚重新发明了
,noscript标记只检测浏览器是否启用了JavaScript。如果在防火墙中而不是浏览器中禁用了JavaScript,则JavaScript将不会运行,并且不会显示noscript标记的内容。最好让javascript代码覆盖一个启用javascript的页面,该页面具有简单的
display:block
显示:无。侯赛因的评论似乎是抄袭自。有趣的是,如果你查看meta标记,你会发现这篇文章曾经被称为“避免使用Noscript和Java的5个非常好的理由”。为什么会投反对票?真正地你会对你自己的网站使用同样的方法吗?当你明显有更好的解决方案时(如上所示)。不确定你的感觉是否“明显更好”。Noscript在向未启用JS的用户显示内容方面做得很好,但不会隐藏其余内容。因此,您必须在默认情况下隐藏它,然后通过JS显示它,因此在慢速连接/设备上会闪烁。•避免隐藏文本或隐藏链接。不应显示不同的内容。但是一个很好的解释为什么有些事情不起作用,会很好。我完全同意你的观点,OP所要求的既不实用也不推荐。然而,众所周知,老板要求的东西既不实用也不推荐/
 <p id="jsDisabled">JavaScript disabled.</p>

<script type="text/javascript">
    function hideScriptDisabled() {
        document.getElementById("jsDisabled").display = "none";
    }
    hideScriptDisabled();
    </script>
document.write(".jsDisabled { display: none; }");
<!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>