0

如果用户从浏览器或防火墙或任何其他他永远不会显示表单的地方禁用 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...

4

2 回答 2

2

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

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

所以,让它可用​​/有吸引力,不要担心高级用户可能会绕过你的方案——无论客户端有什么请求,都要确保你的网站是安全的。

于 2013-10-20T14:07:36.220 回答
0

使用 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>
于 2013-10-20T14:23:21.967 回答