如何检查Javascripts是否被代理禁用

时间:2013-05-04 13:24:04

标签: javascript jquery html wordpress

我不知道天气有什么方法可以解决这个问题,但我只是问它,因为我相信SO是一个天才人的地方。无论如何,我们都知道如果我们在HTML文档中使用<noscript></noscript>标记,并且如果查看此页面并且从浏览器禁用JavaScript的任何用户将看到无脚本消息。 但是,如果JavaScript被代理禁用了怎么办?许多wifi网络需要手动输入一些代理才能使用互联网,其中许多都禁用了代理服务器上的代理服务器上的JS。在这种情况下,如果有人访问同一页面,该页面将看到已从浏览器启用JavaScript,但已从代理禁用。 如果有任何方法可以检查天气JavaScript已被任何代理(如果使用)禁用并显示警报消息?如果有人能说出如何用Wordpress实现它,也没有wordpress,我也会很高兴。 :)

感谢。

1 个答案:

答案 0 :(得分:4)

您可以默认显示消息,然后使用JavaScript删除或隐藏它,例如:

<div id="jsalert">JavaScript is disabled in your environment.</div>
<script>
(function() {
    var elm = document.getElementById("jsalert");
    elm.parentNode.removeChild(elm);
})();
</script>
<!-- Continue your content here -->

如果script代码被代理剥离(我相当确定非常不正常;至少,我从未见过它),那么当然是脚本将不会在那里运行,div将显示。如果script存在,则会移除div

通过div 立即跟随script (即perfectly fine,不需要“DOM就绪”的东西,只会延迟事情),在常见情况下(在启用JavaScript但未删除JavaScript的情况下)页面上div“闪烁”的几率非常低。不是零,而是低。

如果您认为代理剥离script代码,而只是阻止JavaScript文件的下载(这将是愚蠢的),您可以更改以上内容以使用JavaScript文件,但请注意,通过执行此操作,您可以阻止页面的呈现(如果使用<script src="...">),或者在页面上显着增加(显着)div“闪烁”的几率(如果异步加载脚本)。

这只是一个特定的用例,用于称为“渐进增强”的一般做法(或者有时“优雅降级”,但大多数人更喜欢第一种)。在这种情况下,您可以确保在JavaScript不可用的情况下正确且有用地呈现页面,然后在启用JavaScript时使用JavaScript向页面添加行为。在这种情况下,你正在做的“有用”的事情是说JavaScript由于某种原因没有运行,所以它有点不同,但它的原理是一样的。