0

我最近发现了一种非常简单的方法来在代理禁用 javascript 时显示消息,而且效果很好——在我的笔记本电脑上..!

我在移动 safari 上测试了它,它不起作用。有什么理由不这样做吗?我在编写代码时考虑了这些事情:

  1. 标记/dom 实际加载/注册,所以我在 div 的结束标记之后放置了一个脚本标记
  2. 它不应该立即工作的任何类型的原因,所以我使用了 setTimeout 函数并让它等待 100 毫秒
  3. 使用 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 的结束标记之后开始它没有区别的事实。

编辑2:

确认执行 document.getElementById 并将 display 设置为 none 也不起作用!到底是怎么回事...

4

2 回答 2

0

尝试使用 load() 事件,如果这不起作用 $(document).ready() 几乎绝对肯定会做你想做的事。

您应该尝试在您的计算机上使用 webkit 浏览器,看看是否不是 webkit 问题。

于 2011-08-29T06:48:55.503 回答
0

编辑:全新的想法。

可能是移动 safari 不支持桌面 jquery。

你可以试试 jQuery mobile。或这个:

    (function() {
        setTimeout(function() {
            $('#enable-js').css({'display':'none'}); //hide area if scripts enabled
        }, 100);
    })();
于 2011-08-29T07:03:13.060 回答