Панель инструментов Wibiya ломает быстрые вкладки Drupal

У меня установлен модуль Drupal Quicktabs по адресу: http://ar.sacherokeedev.com/auction-directory

Я также установил панель инструментов wibiya, http://www.wibiya.com.

Все отлично работает в Firefox и Chrome, но в IE7 с включенной панелью инструментов прерывается загрузка вкладки ajax. С отключенной панелью инструментов IE7 работает нормально. У Wibya есть режим «Конфликт Javascript», и я попробовал его, а также изменил свой DocType, как они предлагают.

Я сузил его до нескольких вещей. Во-первых, поведение быстрых вкладок зависит от «типа» вкладки:

if (tab.tabObj.type != 'view') {
    // construct the ajax path to retrieve the content, depending on type
    var qtAjaxPath = Drupal.settings.basePath + 'quicktabs/ajax/' + tab.tabObj.type + '/';
    switch (tab.tabObj.type) {
      case 'node':
        qtAjaxPath +=  tab.tabObj.nid + '/' + tab.tabObj.teaser + '/' + tab.tabObj.hide_title;
        break;
      case 'block':
        qtAjaxPath +=  tab.qtid + '/' + tab.tabObj.bid + '/' + tab.tabObj.hide_title;
        break;
      case 'qtabs':
        qtAjaxPath +=  tab.tabObj.qtid;
        break;
    }

В моем случае при использовании панели инструментов в IE tab.tabObj.type «не определен». Итак, я думаю, что wibiya угоняет мои объекты или что-то в этом роде.

Я также получаю ошибку времени выполнения «Объект не поддерживает это свойство или метод» в следующем блоке:

if (!Drupal.quicktabs.scripts[files[i]] && !files[i].match(/^\/misc\/jquery\.js.*$/)) {
  Drupal.quicktabs.scripts[files[i]] = files[i];
  html += '<script type="text/javascript" src="' + files[i] + '"></script>';
}

Кто-нибудь видел это раньше или есть какие-либо предложения?

Обновление: я сделал console.log(tab.tabObj) и в Firefox и Chrome я получаю что-то, что имеет смысл, объект с идентификатором блока, типом и т. д. Но в т. е. я получаю это:

function(fn,thisObj){var scope=thisObj|window;for(vari=0,len=this.length;i<len;++i){fn.call(scope,this[i],i,this);}}

У кого-нибудь есть идеи?

ОБНОВЛЕНИЕ: в настоящее время я использую специальный модуль wibya для Drupal, и сама панель инструментов отлично работает на моем сайте, независимо от того, используется ли IE, Firefox или Chrome. Проблема в том, что вкладки ajax на этой странице не работают на панели инструментов wibiya. Я склонен согласиться с @clive, что это конфликт jQuery/javascript, но я не уверен, что могу с этим поделать.

Что касается запуска Drupal 6, я унаследовал систему и на данный момент не могу ее обновить.

ОБНОВЛЕНИЕ: я только что попытался загрузить jQuery 1.4, следуя инструкциям на странице http://drupal.org/node/1058168. Это заставило IE работать правильно, но теперь Chrome и Firefox не нравятся.

ОБНОВЛЕНИЕ: это конфликт между jQuery 1.3, который работает на Drupal 6, и панелью инструментов Wibiya, которая использует как минимум 1.4. Я принимаю ответ @clive, главным образом потому, что он прав в том, что это просто то, с чем мне придется жить, если мне придется продолжать использовать Drupal 6.


person ditch182    schedule 09.09.2011    source источник


Ответы (1)


По моему мнению, вы используете Drupal 6, который поставляется с jQuery 1.2.6 (или 1.3.2 с jQuery модуль обновления. База Wibiya, наоборот, использует jQuery 1.4.2 и выше.

Согласно странице на форумах поддержки Wibiya (я уверен, вы уже видели) :

if page loads another version of jQuery like 1.2.6 or 1.3.2 previously, Wibiya bar's loading of its own jQ 1.4.2 does not work. No bars, nothing.

But if you load your own jQ 1.4.2 in the first place, then your bar works, despite all other Drupal functions suck like polls, votes, hierarchical select tags, nice menus, some collapsibles, etc.

Существует множество таких проблем с Drupal, поэтому сообщество предлагает обходные пути и решения: модуль Wibiya для Drupal, вероятно, избавит вас от многих головных болей.

ОБНОВЛЕНИЕ

На вашем сайте ошибка JS:

Unsafe JavaScript attempt to access frame with URL http://ar.sacherokeedev.com/auction-directory from frame with URL http://ad.doubleclick.net/adi/N1727.autoremarketing.com/B5111890.6;sz=728x90;click=http://adclick.g.doubleclick.net/aclk?sa=L&ai=B6dLCjz5qTqvUGIfN0AXN67WqBa-C-usBAAAAEAEg7ZqAFjgAWK_Q_80gYLu2moPQCrIBFGFyLnNhY2hlcm9rZWVkZXYuY29tugEJZ2ZwX2ltYWdlyAEJ2gEtaHR0cDovL2FyLnNhY2hlcm9rZWVkZXYuY29tL2F1Y3Rpb24tZGlyZWN0b3J5mAKgjQbAAgLgAgDqAhNBUl9Ib21lX0xlYWRlcmJvYXJk-ALw0R6QA4wGmAPgA6gDAeAEAaAGFg&num=0&sig=AOD64_1Xi82LSwUc1kKF0RL_orTztOMfxg&client=ca-pub-2649455708539916&adurl=;ord=1670303729?. Domains, protocols and ports must match.

Возможно ли, что попытка небезопасного кадра мешает IE7 обрабатывать остальную часть JS, из-за чего ваши вкладки не работают?

person Clive    schedule 09.09.2011
comment
Большой +1 за модуль Drupal. - person ceejayoz; 09.09.2011
comment
@clive Я использую специальный модуль Drupal, и нет проблем с отображением самой панели инструментов. Моя проблема в том, что когда панель инструментов отображается, она ломает мои вкладки. Я согласен с вами, что это, вероятно, конфликт, я просто не знаю, что с этим делать. Drupal 6 — это то, с чем мне пока приходится жить, так как я унаследовал сайт. - person ditch182; 09.09.2011
comment
На вашем сайте есть ошибка js, которая может привести к отказу IE7, я обновил ответ выше. - person Clive; 09.09.2011
comment
Вы используете Chrome, не так ли? Эта ошибка вызвана Google Ads, и обычно это не проблема, Firebug и IE даже не сообщают об этом. Это определенно конфликт jQuery. Я только что попытался загрузить jquery 1.4 на страницу, и это решило проблему в IE, но вызвало новую проблему в Firefox. - person ditch182; 09.09.2011
comment
Виноват :) У меня были проблемы с IE7, особенно раньше, когда была включена агрегация JS/CSS (что, похоже, имеет место для вас), вы случайно не пробовали отключить это? - person Clive; 09.09.2011
comment
Пробовал отключать агрегацию, безрезультатно. Добавление вызова к jQuery 1.4 помогло в IE, но также сломало Firefox и Chrome. Это тоже становится странным, теперь запрос ajax возвращает контент, но устанавливает статус xhr в 0. - person ditch182; 09.09.2011