2013-09-16 2 views
0

Как не запускать функцию javascript в IE.У меня есть ряд функций в моем файле javascript. Хотя мне нужно остановить запуск какого-либо скрипта в Internet Explorer. Я знаю, что ниже код используется для запуска этого сценария файл, если не IE ..Не запускайте функцию javascript в IE

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

Как я могу пропустить некоторые функции в js..like ниже я попытался пропустить метод б в IE .. но не работают ..

function a{alert(a);} 
<!--[if !IE]> 
function b{alert(b);} 
<![endif]--> 
function c{alert(c);} 
function d{alert(d);} 

но метод б всегда called..How может я предотвратить его запуск в IE браузеров ..

+0

Положите его в его собственном теге сценария? – SmokeyPHP

+1

Возможный дубликат [Обнаружить версию IE в Javascript] (http://stackoverflow.com/questions/10964966/detect-ie-version-in-javascript) – jycr753

+1

modernizer.js :) – Shashi

ответ

3

IE10 не поддерживает условные комментарии.

Если вы не хотите запускать функцию в некоторых браузерах, то подавляйте ее с помощью feature (AKA object) detection, а не обнаружения агента пользователя.

0

На самом деле то, что я делаю это немного противно, но если есть некоторые функции, я не хочу работать в IE добавить это ::

<?php if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == false)):?> 

     <script src="js/noIEfunctions.js"></script> 

    <?php endif;?> 
+1

FWIW, этот код не будет работать в IE11. Обнюхание пользователя-агента является злым, и его следует избегать. – EricLaw

+0

Действительно, почему? всегда хорошо знать :) @EricLaw – jycr753

+0

Команда IE вытащила токен MSIE * явно *, чтобы сломать код, который делал глупое обнаружение User-Agent вместо обнаружения надлежащих возможностей. Многие веб-страницы отлично работают в IE10 или IE11, но из-за устаревшей строки UA-строки страницы не работают. Отсюда и изменение. – EricLaw

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