仅当用户禁用javascript时才显示背景

时间:2011-11-04 15:35:21

标签: jquery html css javascript

我正在这个网站上工作,它依赖于Javascript和jQuery(http://windowsnaarlinux.nl/)。问题是使用jQuery使所有这些对象都可见。因此,当用户在其Web浏览器中禁用了Javascript时,他们只会看到静态背景。 我知道我可以设置所有内容,并在页面加载时使用Javascript隐藏所有内容,以便jQuery可以执行效果,但这仅适用于像图标这样的小东西。当我在这个网站上使用该策略时,一切都先闪烁,然后消失,然后返回jQuery效果。这看起来不太好看。 那么,有没有办法让它在Javascript被禁用时显示内容?我已经将内容放在noscript标签之间(当给出某个PHP GET参数时),因此Google可以看到内容。问题是导航栏和内容区域是隐藏的,除非jQuery使它们可见。

3 个答案:

答案 0 :(得分:2)

除了重新设计页面之外,没有真正的解决方案,因此一个版本是由javascript构建的,另一个版本是在noscript标签内部构建的。

您可以将javascript重定向运行到任何onload之外的仅限javascript的版本,只需将登录页面构建为html,但无法保证用户浏览器将以何种顺序呈现,以及重定向将起作用。

我最好的建议是,如果你需要你的页面在没有javascript的情况下运行,那么不要将javascript构建到它的核心(你需要javascript来加载页面上的所有内容吗?)

答案 1 :(得分:1)

最佳解决方案是逐步增强方法 - 假设每个人都有一个脑/ /古老/过时的浏览器,并使你的登陆/主页成为一个简单的“你必须升级到一些不那么无用的东西”页面。在那里你有一些自动重定向到增强页面的JS。

旧/坏浏览器不会执行重定向,并查看升级文本。现代浏览器将自动跳转到新页面并继续生活。

答案 2 :(得分:1)

默认情况下,关闭javascript的浏览器会在给定的<noscript>标记内呈现其他内容。见:http://www.w3schools.com/tags/tag_noscript.asp

所以,基本上,应该绝对可以显示内容的缩减版本。

我想在这种情况下,主要的问题是,内容容器(可能是从相应的php调用中拉出来的)被隐藏了。所以它没有出现。

这个问题的解决方案也是这种方法的弱点:你不需要首先隐藏<noscript>标签中的内容,因为当浏览器支持时它不会被呈现JavaScript的。关键是,内容被打印两次:一个隐藏(通过javascript显示或保持隐藏)和一个<noscript>标签内部(其中一个被浏览器忽略或变得可见)。但是,这意味着转移的数据正在翻倍。这不是好习惯。

所以尽管这应该回答这个问题,但这篇文章中的其他答案应该被视为更好的方法。