2010-08-26 4 views
0

У меня проблема с моим приложением ASP.NET MVC при использовании Mozilla Firefox. Я использую JQuery, и этот код не работает. В Google Chrome и IE 8 все в порядке. Как решить это. В случае необходимости я буду размещать части моего JQuerycodejQuery не работает на Mozilla Firefox

В главной странице сайта я включаю сценарии, что-то вроде этого:

<script type="text/javascript" src="../../Scripts/jquery-1.3.2.js"></script> 
<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script type="text/javascript" src="../../Scripts/ui.core.js"></script> 
<script type="text/javascript" src="../../Scripts/ui.selectable.js"></script> 
<script type="text/javascript" src="../../Scripts/ui/ui.accordion.js"></script> 

<script type="text/javascript" src="../../Scripts/MicrosoftAjax.debug.js"></script> 
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.debug.js"></script> 


<script type="text/javascript" src="../../Scripts/jquery.dataTables.js"></script> 
<script type="text/javascript" src="../../Scripts/ui/ui.datepicker.js"></script> 
<script type="text/javascript" src="../../Scripts/jquery.bstablecrosshair.js"></script> 



<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script> 
<script src="../../Scripts/jqModal.js" type="text/javascript"></script> 
<script src="../../Scripts/jqDnR.js" type="text/javascript"></script> 

Наиболее важная часть кода, который не работает на Firefox:

 <script type="text/javascript"> 
    $(document).ready(function() { 

    $('input:radio').click(function() { 

     var num = ""; 
     var location = ""; 
     var loc = $("input:checked").val(); 
     var lenght = loc.lenght; 
     var tmp = loc.substring(0, 2); 

     if (tmp == "SA") { 
      num = loc.substring(2, lenght); 
      location = "SA"; 
     } 
     if (tmp == "ST") { 
      num = loc.substring(2, lenght); 
      location = "STH"; 
     } 
     if (tmp == "SH") { 
      num = loc.substring(2, lenght); 
      location = "SASTH"; 
     } 
     if (tmp == "NE") { 
      num = loc.substring(2, lenght); 
      location = "NEW"; 
     } 

     var article_number = $("input[id=" + num + "]").val(); 

     //alert(article_number +" "+ num); 

     $.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number, loc: num }, function(data) { 
      if (data.error == "Error") { 
       alert("Error: quantity is too large! "); 
       window.location.href = "/" + data.redirect; 

      } 

      else { 
       window.location.href = "/" + data.redirect; 
      } 
     }, "json"); 
    }); 
}); 
</script> 
+0

делает регулярные Javascript не работает?или просто JQuery не работает? – davidsleeps

+1

jQuery является обычным JavaScript:/ – RobertPitt

+1

Да, вы должны опубликовать часть своего кода. Обычно нет проблем с jQuery и Firefox. На этом сайте, например, используется jQuery, и я использую Firefox для доступа к нему. – Guffa

ответ

2

Для базовой отладки Javascript/Jquery, попробуйте следующее:

<script type="text/javascript"> 
     alert("Javascript works!"); 

     $(document).ready(function(){ 
      alert("jQuery works!"); 
     }); 
</script> 

Если вы получите только первое окно предупреждения, это означает, что что-то не так с тем, как, на который ссылается JQuery. Если вы не получите ни одного окна в Firefox (но вы делаете это в других браузерах), вам нужно убедиться, что Javascript включен в Options> Content, и вы хотите убедиться, что никакие плагины не будут блокировать Javascript.

(под редакцией, потому что больше кода были добавлены в исходное сообщение :)

Во втором фрагменте кода, который вы вывесили «loc.lenght» должно быть «loc.length».

$('input:radio').click(function() { 

    var num = ""; 
    var location = ""; 
    var loc = $("input:checked").val(); 
    var lenght = loc.lenght; 
    var tmp = loc.substring(0, 2); 
    alert(loc.substring(2, lenght)); 

Похоже, что линия var lenght = loc.lenght; вызывает проблемы, так как loc.lenght вероятно, не возвращает значение, которое вы хотите (потому что lenght не является свойством). Я добавил alert к вашему коду, который должен вывести строку, которую вы вычисляете в операциях if, следующих за этим разделом. Вы должны запустить этот код с помощью alert во всех трех браузерах, чтобы узнать, в чем разница.

Я не уверен, почему это работает в некоторых браузерах, но не в Firefox. Возможно, loc.lenght возвращает 0 в IE 8 и Chrome, но null в Firefox, что сломает весь расчет.

+0

Некоторая часть моего кода jQuery работаю нормально, но какая-то часть не – Ognjen

+0

Спасибо, что добавили больше кода - это определенно поможет. Где в вашем находится библиотека jquery? Вы связываетесь с ним, прежде чем ссылаетесь на каждый из jquery-плагинов? Кроме того, ссылаетесь ли вы на локальную копию jquery или ссылаетесь на внешнюю копию, размещенную в CD/CD/Google/Microsoft/jQuury? –

+0

Не считая последнего комментария, я вижу, что вы снова обновили исходное сообщение. Несколько вещей, которые выделяются: Вы ссылаетесь на одну и ту же библиотеку jquery дважды. Вероятно, это не вызывает проблемы, но это не нужно. Кроме того, эта строка имеет опечатку: var lenght = loc.lenght; «длина» должна быть «длиной». (Если эта часть критическая, то я удивлен, что она работает в других браузерах ...) –

1

Проверьте, отключен ли Javascript в Firefox. Кроме того, проверьте наличие плагинов FF, таких как рекламные блоки, которые могут блокировать некоторые URL-адреса Google, что может быть проблемой, если вы позволяете Google размещать библиотеку JQuery.

+0

JavaScript включен – Ognjen

0

JQuery работал отлично для меня на firefox, возможно, если вы разместите бит, который вам тяжело, сообщество может указать вам в правильном направлении.

0

Установите скрипт, браузер действует по-другому, некоторые строгие и некоторые из них свободны, вы должны понимать, что Chrome исправляет проблемы в вашем коде без вашего ведома, а firfox - нет.

проверьте Chrome Debugger Ctrl-Shift-J и установите скрипач.

+0

У меня такие ошибки: $ ("# selectable ") .selectable не является функцией и $ (" # datepicker "). datepicker не является функцией – Ognjen

+0

Используйте Firebug вместо этого ... вкладка Console - это замена Fiddler. – Martin

+0

убедитесь, что вы, включая библиотеку datepicker в своей голове, datapickcer 'jquery.ui.datepicker.js' - посмотрите источник здесь http://jqueryui.com/demos/datepicker/default.html – RobertPitt

0

Если опубликованные скрипты - это те, с которыми вы работаете, похоже, что на самом деле вы не включили jQuery.

+0

Да, я включаю jQuery, но он не отображается, проверьте мой код – Ognjen

+0

Вы уверены, что плагины совместимы с jQuery 1.3.2? –

+0

Я использовал его на хроме, поэтому я думаю, что это – Ognjen

1

Скорее всего, ваша проблема в том, что вы неправильно использовали слово Lenght.

var lenght = loc.lenght; < - Должно быть loc.length

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