Попытка поставить альтернативу noscript для работы;хорошо, но не в мобильном браузере? - PullRequest
0 голосов
/ 29 августа 2011

Недавно я обнаружил изящно простой способ отображения сообщения, если у агента отключен JavaScript, и он отлично работает - на моем ноутбуке ..!

Я проверил это на мобильном сафари, оно не работает. Есть ли причина этого не делать? Я учел эти вещи при написании своего кода:

  1. Разметка / dom фактически загружается / регистрируется, поэтому я ставлю тег script после конечного тега моего div
  2. Любая причина, по которой он не должен работать сразу, поэтому я использовал функцию setTimeout и заставил ее ждать 100 мс
  3. Используемый jquery только в том случае, если старый добрый поиск по дому и модификация стиля не работали так хорошо / правильно

Мой код:

<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>

Заранее спасибо, ребята.

EDIT:

Я подтвердил, что проблема не в Webkit; а также тот факт, что нет никакой разницы, начиная его с самовывозной анонимной функции или помещая скрытый код в window.onload, а не после закрывающего тега div.

EDIT2:

Подтверждено, что выполнение document.getElementById и установка display на none также не работает! Что происходит ...

Ответы [ 2 ]

0 голосов
/ 29 августа 2011

Редактировать: совершенно новая идея.

Возможно, мобильное сафари не поддерживает настольные jquery.

Вы можете попробовать jQuery для мобильных устройств. Или это:

    (function() {
        setTimeout(function() {
            $('#enable-js').css({'display':'none'}); //hide area if scripts enabled
        }, 100);
    })();
0 голосов
/ 29 августа 2011

Попробуйте использовать событие load (), и если это не работаеткомпьютер и посмотрите, не является ли это проблемой webkit.

...