Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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
如何改进Prelome脚本以支持禁用JavaScript的浏览器?_Javascript_Jquery_Html_Css - Fatal编程技术网

如何改进Prelome脚本以支持禁用JavaScript的浏览器?

如何改进Prelome脚本以支持禁用JavaScript的浏览器?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,大家好,这个脚本(由)工作,但有一个问题。一旦我设置好了它,它就从CSS样式开始,用div覆盖整个页面。然后,脚本会发现完全加载的站点,然而,它也会用禁用的JavaScript(无限加载)锁定浏览器 有人可以帮我解锁这些用户,通过改变这个脚本或建议我一些更友好的也为这些人?(它还没有上线) 代码是: $(window).load(function() { $('#status').fadeOut();animation $('#preloader').de

大家好,这个脚本(由)工作,但有一个问题。一旦我设置好了它,它就从CSS样式开始,用div覆盖整个页面。然后,脚本会发现完全加载的站点,然而,它也会用禁用的JavaScript(无限加载)锁定浏览器

有人可以帮我解锁这些用户,通过改变这个脚本或建议我一些更友好的也为这些人?(它还没有上线)

代码是:

    $(window).load(function() {
        $('#status').fadeOut();animation
        $('#preloader').delay(350)\.fadeOut('slow');
        $('body').delay(350).css({'overflow':'visible'});
    })
对于HTML:



<div id="preloader">

    <div id="status">&nbsp;</div>

</div>


提前感谢您的建议。

试试这个非常简单的解决方案

在js中添加
$('body').addClass('jsSupport')

默认情况下,在css中隐藏预加载程序,因此当没有JavaScript时,它不会显示在屏幕上

#preloader{
  display:none;/*hide when no js*/
}
当JavaScript存在时,您可以使用额外的css类在屏幕上显示它

.jsSupport #preloader {

    display:block;/*show when js is supported*/
}
你可以看到我是如何在这里设置代码的

您可以在这里禁用浏览器的JavaScript来测试它


如何显示
消息,通知用户启用javascript以使用您的站点?谢谢您的回答,是的,我正在考虑。然而,我试图找到一种方法为客人提供相同或至少相似的体验。如果我是用户,我希望dev也会关心我这个选择不使用JavaScript的用户,不管原因是什么。作为开发人员,我们拥有强大的能力,如果只关心我们自己,并以我们的观点看待用户,那将是一种耻辱:)但是,这仍然是一种选择,谢谢。嗯哼-你不能改进脚本,使其在运行脚本被禁用时运行。那太可笑了。但是,您可以做的是使站点在没有预加载程序的情况下工作。如果JS可用,那么可以使用它来使用预加载程序。就像您可以在默认情况下使页面适合noscript提交表单一样,但是如果启用,您可以使用JS来更改它们,以便使用ajax进行提交。是的,您是对的,存在一个问题。页面加载时调用的类由脚本控制。我不知道如何调用那个类,只有在支持JS的情况下。希望在这里找到解决方案,任何关于如何改进脚本的建议都可以省略。如果我在浏览器上禁用了脚本,我不是你的新手用户,我知道后果是什么。或者至少我可以为你的网站启用脚本或者走开。更好的选择是在
中设置备用页面并链接到该页面,就像在优秀的ol'flash简介中跳过一样。谢谢,这正是我所做的,但是使用第二个脚本-因此出现了另一个请求,并且不需要额外的加载时间(悖论)。我会试试你的解决办法。但是为了获得最佳性能,您建议将代码行
$('body')放在哪一行?在
$(window).load(function()
line?@equi之后,我建议将其添加到$(window).load(function()之前在jquery启动之后,预加载程序将在页面加载后立即可用。为了获得最佳性能,我建议只使用纯javascript,这样您就不需要等待jquery启动….
document.getElementsByTagName('body')[0].className+='jsSupport'
您好,我无法将任何一行添加到jQuery或纯JavaScript。尝试了内联或外部文件,但没有任何结果(不再调用预加载程序)。编辑:它像一个符咒一样工作,我的拼写错误:)纯JS速度更快,您是对的(在页面出现时立即启动)…@Vincent1989谢谢你抽出时间。
.jsSupport #preloader {

    display:block;/*show when js is supported*/
}