2013-07-18 3 views
0

TL; DR - плагины jQuery работают в Firefox, но не в Chrome. Одна и та же страница, те же файлы, то же самое.Symfony2: плагины jQuery, работающие в Firefox, но не в Chrome

Итак, у меня есть эта страница ветви, которая расширяет еще одну. В родительской странице JQuery вызываются через assetic как так

#FooBar/Resources/view/Default/base.html.twig 
{% stylesheets output = 'bundles/foobar/*.js' %} 
    '@FooBarBundle/Resources/public/js/jquery/jquery-1.8.3.js' 
{% endstylesheets %} 

{% block custom_js %}{% endblock %} 

Затем в шаблоне ребенка У меня есть следующие

#WooHooBundle/Resources/views/FrontPage/frontpage.html.twig 
{% extends 'FooBarBundle:Default:base.html.twig %} 
{% block custom_js %} 

    {% javascripts output='bundles/woohoo/js/*.js' */ (adding this made output look funny) 
     '@WooHoBundle/Resources/public/js/Global/guidedTour.js' 
     '@WooHoBundle/Resources/public/js/Global/jquery.joyride-2.1.js' 
     '@WooHoBundle/Resources/public/js/Global/jquery.cookie.js' 
     '@WooHoBundle/Resources/public/js/Global/jquery.number.min.js' 
    %} 

     <script src="{{ asset_url }}" type="text/javascript"></script> 

    {% endjavascripts %} 

{% endblock %} 

Так что, когда я пытаюсь использовать jquery.number, например, в Firefox это выглядит как это (в консоли)

$.number(1337) 
'1337' 

И в хроме это выглядит следующим образом

$.number(1337) 
TypeError: Object function (e,t){return new b.fn.init(e,t,r)} has no method 'number' 

Я посмотрел в DOM, и плагины находятся после jQuery в DOM. Когда я смотрю в ресурсы, плагины появляются перед jquery. Кажется, это алфавит, хотя и assetic присваивает эти случайные значения началу файлов на активах: install/assetic: dump. Так они выглядят как этот

10ec069_jquery.number.min_4.js 
c2a2536_jquery-1.8.3_1.js 

Так что я понятия не имею, почему это будет работать в Firefox, а не в хроме .... У меня есть другие JS, который вызывается ПОСЛЕ JQuery плагинов ... Я запустите их jsLint, и там все в порядке.

Спасибо за любую помощь/советы вы можете дать :)

Дрю

EDIT:

Так что я был установлен Javascript Library for Console Extension и перезаряжал JQuery ПОСЛЕ все остальное. отключил его, и теперь все работает нормально

+0

Оказывается, у меня было расширение хром, которое вводило javascript после того, как все было загружено. Заставляло все ломаться. –

ответ

0

Попробуйте указать имя файла вместо * .js или каталога.

{% javascripts output='javascript.js' 
    '@WooHoBundle/Resources/public/js/Global/guidedTour.js' 
    '@WooHoBundle/Resources/public/js/Global/jquery.joyride-2.1.js' 
    '@WooHoBundle/Resources/public/js/Global/jquery.cookie.js' 
    '@WooHoBundle/Resources/public/js/Global/jquery.number.min.js' 
%} 

В производстве все ваши JS файлы должны войти в 1 файл (javascript.js или другое имя). В разработке assetic должны помещать их в несколько файлов.

Не забудьте опубликовать свою версию symfony, если у вас есть вопрос.

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