试图将noscript替代工作;很好,但不是在移动浏览器?

时间:2011-08-29 06:38:33

标签: javascript browser mobile noscript

我最近发现了一种优雅简单的方式来显示消息,如果代理已禁用javascript,并且它的效果很好 - 在我的笔记本电脑上......!

我在手机游戏中测试过它,它不起作用。它没有任何理由吗?我在编写代码时考虑了这些事情:

  1. 标记/ dom实际上正在加载/注册,所以我在我的div的结束标记之后添加了一个脚本标记
  2. 任何类型的原因,它不应该立即工作,所以我使用了setTimeout函数,让它等待100毫秒
  3. 使用jquery只是为了好老的dom查找和样式修改的东西没有那么好/正确
  4. 我的代码:

    <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并将display设置为none也不起作用!发生了什么......

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

编辑:全新的想法。

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

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

    (function() {
        setTimeout(function() {
            $('#enable-js').css({'display':'none'}); //hide area if scripts enabled
        }, 100);
    })();