2012-06-22 3 views
4

Как мне запустить скрипт в каждом браузере, кроме Internet Explorer?Только запустить скрипт, если не Internet Explorer

Я использую queryloader2 на своем сайте и (по какой-либо причине) занимает около минуты, чтобы загрузить в IE9, я принимаю то же самое или хуже в более старых версиях IE. В любом другом браузере это всего лишь несколько секунд. Из-за этого, я бы хотел просто не запускать скрипт вообще в любой версии IE (это не повредит функциональности сайта).

+3

Дубликат http://stackoverflow.com/questions/8357458/block-script-in-ie – speakr

ответ

1

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

Важно понимать, что в отношении любого браузера, отличного от IE (и даже более новых версий IE), «условный комментарий HTML» является просто комментарием. Другими словами, что-то вроде предложению upvoted ответить в:

<!--[if !IE]> 
    <script src="myScript.js" type="text/javascript"></script> 
<![endif]--> 

Is, насколько ничего, кроме IE, то, только один длинный комментарий, начиная с <!-- на линии 1 и заканчивая --> в строке 3 , как и любой другой комментарий HTML.

Чтобы получить кусок HTML, которые будут игнорироваться IE, вы должны воспользоваться тем, что комментарии HTML не поддерживают вложенность, т.е. <!-- <!-- --> something --> является комментарием, который заканчивается в первой--> и не второй, значение something --> будет анализироваться как HTML и не рассматривается как часть комментария.

Так что мы можем сделать, это использовать что-то вроде этого, вместо:

<!--[if !IE]--> 
    <script type="text/javascript" src="script.js"></script> 
<!--<![endif]--> 

Здесь не-IE браузеры будут видеть две отдельные комментарии (на 1-й и 3-й линии, соответственно) и регулярные HTML в середине , Но браузер, анализирующий эти теги, увидит комментарий, начинающийся с первой строки, , затем проигнорируйте все, пока не встретите<![endif]--> на 3-й строке. Это дает нам блок кода, который будет выполняться не-IE/современными браузерами, но будет проигнорирован старыми версиями IE, поддерживающими условный HTML.

7

Вы должны использовать условные комментарии для этого:

<!--[if !IE]> 
    <script src="myScript.js" type="text/javascript"></script> 
<![endif]--> 
+0

Я думал, что это делает скрипт работать только в IE, а не только в IE? Упс, нет, спасибо! – chrscblls

+1

Обратите внимание на символ '!'. Без него скрипт будет загружен только в IE. С ним во всех браузерах, кроме IE – antyrat

+0

Да, спасибо большое! Извините, что задал глупый вопрос, я должен был это осознать раньше. – chrscblls

-1

ниже код может быть хорошо, но, к сожалению, не работает в моей проблеме ,,,,,,,,,,,,,,, так, если выше код не работает, а затем использовать этот

<![if !IE]>You are NOT using IE.<![endif] 
+0

Вы не можете использовать это; он будет интерпретироваться как недопустимый HTML другими браузерами. Он должен быть в блоке комментариев. –

Смежные вопросы