Отключение JS изнутри веб-сайта для определенных браузеров - PullRequest
1 голос
/ 12 июля 2011

Мой веб-сайт полностью разработан без JavaScript.JS добавлен совершенно не навязчиво.

Теперь я не хочу тестировать JS во всех браузерах (особенно в старых версиях IE), поскольку они не дают обратной связи для отладки, и это просто не стоит моего времени.1003 *

Так что я просто хотел бы отключить JS в некоторых браузерах (или наоборот: разрешить его в браузерах, с которыми я его тестировал).

Есть ли способ сделать это?Или мне нужно создать флаг JS, к которому я должен обращаться каждый раз перед выполнением JS?(на самом деле не хочу этого делать)

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Мне кажется, что решение Cwallenpoole не будет работать, если оно не будет вызвано событием DOM ready или, по крайней мере, после других тегов сценария, когда сценарии уже будут запущены.

Если все ваши скрипты находятся в одном месте или, по крайней мере, не встроены по всей странице, возможно, вам следует включить их в JavaScript после проверки браузера:

<script>
    if( /* Browser checks */ )
        document.write( '<script src="scripts.js"></script>' );
</script>

Это один сценарий, который показывает, почему важно хранить ваш код D.R.Y. и все в одном месте.

Для обнаружения браузеров, проверьте quirksmode , но вместо этого обратите внимание на ссылку на их страницу обнаружения объектов, если это более полезно для вашего варианта использования. Yepnope.js полезен для последнего, который является частью Modernizr.

0 голосов
/ 12 июля 2011

Я считаю, что это будет работать: используйте это в качестве первого <script> тега

if( /* test for browser */ ) killJS()
function killJS() {
    var scripts = document.getElementsByTagName("script")
    for( var i = 0; i < scripts.length; i++ )
    {
        var curr = scripts[i]
        if( curr.parentNode ) curr.parentNode.removeChild(curr)
    }
}
...