测试在重排期间是否启用了JS?

时间:2014-03-23 21:20:22

标签: javascript html fallback reflow

我知道如果在启用JS时如何测试页面加载或刷新,但是每次重排都可以这样做吗?

假设在启用JS时页面加载,但在浏览器会话期间它被禁用,此后用户执行的任何JS依赖操作都将失败。经过测试后,我发现Chrome在这些更改生效之前需要刷新,而Firefox会立即应用它们 - 因此,当JS被禁用并且没有启动在页面加载时生效的回退时,最初工作正常的网站就会破坏。

有些人可能会认为这是一个微不足道的问题,我确信有可以解决这个问题的后备,但是有可能在每次重绕时测试页面的状态吗?

欢迎任何进一步的想法/建议/后备示例。非JQuery最受欢迎。谢谢!

1 个答案:

答案 0 :(得分:0)

如果/在页面上禁用了JS,则无法执行客户端操作以便修复"你的页面。你不能把像处理程序这样的东西关联起来,因为在JS被禁用的情况下,它就不会运行。

通常,希望为禁用的JS提供回退的站点通过使用JS来增强功能而不是功能。

如果JavaScript突然被禁用,这是一种有限但有创意/ hacky /原创的恢复方式:

在DOM中放入一个覆盖整页的不可见链接。该链接指向不需要JavaScript的页面版本(最糟糕的是通知用户必须启用JavaScript的页面)。显然,通过JavaScript禁用链接的默认操作。使用JavaScript将其上发生的所有事件重新触发到下面的元素。每当禁用JavaScript时,任何后续点击都将导航到无脚本页面。显然,除了点击之外,这并不适用于任何其他事件而且非常麻烦,但它是您可以获得的最接近的事件。

另一个想法是使用JavaScript操作元重定向(重定向始终在1秒后发生,然后JS将其更改为在1秒之后发生,等等),但是apparently that doesn't work