2

如果启用了 JS,我知道如何在页面加载或刷新时进行测试,但是可以在每次重排时执行此操作吗?

假设页面在 JS 启用时加载,但在浏览器会话期间它被禁用,此后用户执行的任何 JS 相关操作都将失败。例如,在测试之后,我发现 Chrome 需要在这些更改生效之前刷新,而 Firefox 立即应用它们 - 因此,当 JS 被禁用并且没有在页面加载时生效的回退启动时,最初运行良好的网站崩溃了。

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

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

4

1 回答 1

0

如果/当 JS 在页面上被禁用时,您无法采取任何客户端操作来“修复”您的页面。您不能关联诸如处理程序之类的东西,因为禁用 JS,它将无法运行。

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

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

在 DOM 中放置一个覆盖整个页面的不可见链接。该链接指向不需要 JavaScript 的页面版本(最坏的情况是通知用户他必须启用 JavaScript 的页面)。显然,链接的默认操作是通过 JavaScript 禁用的。使用 JavaScript 将其上发生的所有事件重新触发到下面的元素。每当 JavaScript 被禁用时,任何后续点击都将导航到无脚本页面。显然,除了点击之外,这对任何其他事件都不起作用,这很麻烦,但它是你能得到的最接近你所追求的东西。

另一个想法是使用 JavaScript 操作元重定向(重定向总是在 1 秒后发生,然后用 JS 将其更改为在 1 秒后发生,等等),但显然这不起作用

于 2014-03-23T21:40:18.133 回答