【问题标题】:hide content or redirect if css is disabled with jQuery如果使用 jQuery 禁用 css,则隐藏内容或重定向
【发布时间】:2012-07-14 21:42:58
【问题描述】:

好的,我一直在做一些关于检测用户是否禁用 css 的研究。我知道世界上甚至没有 2% 的人在禁用 css 的情况下浏览网页,但我仍然需要检测 css 是否已加载。

基本上,我使用经典的 asp 和 jquery 的组合来检测用户是否登录,然后使用 jquery 将淡入淡出覆盖在带有登录表单的窗口上。如果用户转到该特定页面并禁用 css,我的所有内容仍然可供他们使用。

我想知道是否有更好的方法来使用 jQuery 做到这一点?可以检测样式表是否已被即时禁用/删除。

如果禁用了 javascript,我已经使用 <noscript> 重定向用户,但我想采取额外的预防措施并重定向它们。

我尝试只使用一个简单的 javascript 显示检查来查看特定的 div 元素是否被隐藏,以“检测”css 是否被禁用。但是在 Chrome 中,如果我在页面上并且我使用 Web 开发人员禁用所有 css,则 javascript 警报不会显示。该警报只是作为检查它的测试,一旦我弄清楚如何正确执行它,我将添加重定向。

非常感谢任何帮助或建议,在此先感谢。

<noscript>
<meta http-equiv='refresh' content='0;url=old_login.asp'/>
</noscript>


<script type="text/javascript">
    var csschk = document.getElementById('nocss');

    if (csschk.style.display = 'none') {
    } else {
        alert('Please enable CSS to view this page');
    }

</script>

<style>
#nocss {
display: none;
}
</style>

<div id="nocss">no css</div>

【问题讨论】:

  • 我说得对吗:您实际上确实提供了您尝试通过身份验证保护的所有数据,而您添加的所有“安全性”到那时都将其隐藏在客户端浏览器中?相信我,有了这个方案,您就不必为禁用的 css 烦恼了。
  • 非常好笑。我只是用包含登录脚本的透明覆盖来掩盖页面,因此该页面在大多数情况下仍然可见,只是功能无法访问。我知道这可能不是迄今为止最安全的方法..
  • 每个人都可以通过从您提供的来源复制内容来获取内容,或者使用纯文本浏览器更简单。
  • 我知道这可能是哪里出了问题。好的,谢谢你的建议。

标签: jquery css redirect hide


【解决方案1】:

我认为您在这里遇到了更严重的问题。无论是否启用 CSS,一个简单的视图源都会显示您的页面及其内容。

您需要重新考虑您的方法。在显示安全内容之前使用凭据进行普通表单发布,或者如果您想避免页面刷新,请使用 AJAX。

有关使用 Ajax 提交表单的示例,请参见此处: http://randomactsofcoding.blogspot.com.au/2008/10/jquery-ajax-and-classic-asp.html http://heybigname.com/2009/04/15/ajax-with-jquery-a-simple-login-example/ http://blog.webwizo.com/2011/05/04/simple-login-with-php-and-jquery-ajax/

出于学术目的,要检查页面是否具有 CSS,您可以使用 jQuery / JavaScript 来检测 head 标签内是否存在链接标签。

您还可以使用像 Modernizr 这样的库来进行特征检测并检查 CSS 特征是否在浏览器中工作。

【讨论】:

  • 我最初的做法是正确的,通过使用凭据显示页面或重定向到登录名,但我认为在登录名的页面上有一点 jquery 覆盖会更好看,直到我意识到我以这种方式暴露了我所有的内容。您是否建议我使用 AJAX 仅刷新带有屏蔽页面的登录名的 div?还是我误会你了?我以前真的从未使用过 AJAX,但如果你知道一些好的链接,我一定会去看看。感谢您的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 2012-01-08
相关资源
最近更新 更多