【发布时间】: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 烦恼了。
-
非常好笑。我只是用包含登录脚本的透明覆盖来掩盖页面,因此该页面在大多数情况下仍然可见,只是功能无法访问。我知道这可能不是迄今为止最安全的方法..
-
每个人都可以通过从您提供的来源复制内容来获取内容,或者使用纯文本浏览器更简单。
-
我知道这可能是哪里出了问题。好的,谢谢你的建议。