如果禁用了javascript,则隐藏表单

Hide form if javascript disabled

本文关键字:隐藏 表单 javascript 如果      更新时间:2023-09-26

如果用户从浏览器或防火墙或任何其他地方禁用JavaScript,我需要检查禁用JavaScript,他永远不会显示表单。我有很多搜索和解决方案,但不幸的是没有得到正确的。- 使用带有无脚本标签的样式:删除样式可能会破坏这个...

<noscript>
<style type="text/css">
.HideClass {
display:none;
}
</style>
</noscript>

过去的代码可以正常工作,但是无脚本标签中存在很多问题,如下所示

除此之外,我也不想使用无脚本标签重定向用户......除此之外,我可以快速停止加载页面以破坏此元或从IE禁用元标记:


<meta http-equiv="refresh" content="0; URL=Frm_JavaScriptDisable.aspx" />另一种使用 JavaScript 重定向用户的方法,但这将适用于 99% 的用户,而这种方式并不可爱,会减慢网站的速度......


window.location="http://www.location.com/page.aspx";是否有任何其他想法或建议可以确保使用 JavaScript 工作...并阻止用户进入网站或查看我的表单,除非启用了 JavaScript...

听起来你以某种方式依赖javascript来确保安全(基于安全标签和你对客户端可以绕过你的方案的各种变通方法的描述)。

这不是一个好主意 - 你不能依赖客户端正确执行你的javascript,即使它被启用。一个成熟的用户可以将他们喜欢的任何http方法发送到你的网络服务器,不管你为他们提供什么。他们还可以假装是具有任何功能(脚本、noscript 等)的任何客户端,您无法可靠地判断他们报告的功能是否准确。

因此,使其可用/有吸引力,并且不必担心高级用户可能能够绕过您的方案 - 无论来自客户端的请求如何,请确保您的网站是安全的。

使用 jQuery 类似的东西:

示例 1:

<div id='form_placeholder'></div>
<script type='text/javascript'>
var form='<form><input type="text" name="cat"/><input type="submit" value="submit" name="submit"/></form>';
$(document).ready(function(){
    $('#form_placeholder').html(form);
});
</script>

如果启用了javascript,脚本应该显示表单。

或者干脆

示例 2:

<div id='form_placeholder' style='display:none'>
<form>
<input type="text" name="cat"/>
<input type="submit" value="submit" name="submit"/>
</form>
</div>
<script type='text/javascript'>
 $(document).ready(function(){
        $('#form_placeholder').show();
    });
</script>