禁用JS后事件处理程序代码是“持久的”吗?

时间:2012-05-20 07:35:27

标签: validation document-ready javascript

我在使用jquery document.ready event的网站上测试客户端验证时发现了一些有趣的东西。

如果我加载了禁用js的登录页面,其noscript标记将用户重定向到另一个页面,通知浏览器未启用js支持。

如果我在启用了js的情况下加载了登录页面,然后继续禁用它,则其document.ready事件上附带的代码仍在运行,并且在其登录名和密码字段中完美地验证了空输入。

由于我没有看到请求服务器执行此类验证的页面,我想知道是否正确假设js最初启用的事实足以使document.ready运行并永久附加代码,无论如何我之后如何切换js支持?或许我错过了什么?。

感谢大家给我的见解。

2 个答案:

答案 0 :(得分:1)

即使在您的设置中禁用了JS,浏览器仍会在当前打开的页面上运行JS。在禁用JS时加载的任何新页面都将禁用其脚本。

就像浏览器仅在页面加载时检查该设置:

Load page -> is scipts on? -> yes -> run        //changing it anywhere after
                           -> no  -> do not run //does not affect it's status

答案 1 :(得分:1)

“禁用javascript”实际上会更接近现实,如果称为“从现在开始禁用js”。在禁用之前执行的所有操作都已执行。禁用后发生的所有事情(例如超时,间隔等)都不再执行。