我最近发现了一种优雅简单的方式来显示一条消息,如果代理已禁用JavaScript,并且它的效果很好 - 在我的笔记本电脑上。试图让替代无脚本工作;罚款,但不是在移动浏览器?
我在移动Safari浏览器上测试过它,它不工作。有什么理由不这样做?写我的代码时,我考虑到了这些东西:
- 的标记/ DOM实际加载/注册,所以我把一个脚本标签我的div
- 任何类型的原因的结束标记之后为什么不该”将不起作用向右走,所以我利用了setTimeout函数的,把它等待100毫秒
- 使用jQuery的只是柜面好老DOM查找和类型修改的东西没有执行,以及/正确
我代码:
<div id="enable-js">
<div id="content-container">
<div id="text_wrapper">
<p>For the best experience, please <a href="http://www.activatejavascript.org/">enable
javascript</a>.
If your browser is not capable of using javascript,
please considering getting a <a href="http://alternativebrowseralliance.com/browsers.html">better
browser</a>.
</p>
</div>
</div>
</div>
<script type="text/javascript">
(function() {
setTimeout(function() {
$('#enable-js').hide(); //hide area if scripts enabled
}, 100);
})();
</script>
在此先感谢,伙计们。
编辑:
我确认问题不在Webkit中;以及事实上它不会以自我调用的匿名函数启动它,或者将隐藏代码放在window.onload中,而不是在div的结束标记之后。
EDIT2:
证实,这样做的document.getElementById并设置显示为none没有任何工作!这是怎么回事...
为什么不'
noscript使得在严格的文档类型下有时难以验证;只是提供一个无脚本消息并放入一个脚本来隐藏它是更有意义的。如果启用了脚本,它将有效地隐藏该消息。 – ffs82defxp