Wibiya工具栏打破了Drupal quicktabs

时间:2011-09-09 15:07:50

标签: ajax drupal tabs toolbar

我安装了Drupal Quicktabs模块: http://ar.sacherokeedev.com/auction-directory

我还安装了wibiya工具栏,http://www.wibiya.com

在Firefox和Chrome中一切正常,但在IE7中,启用了工具栏后,它会破坏ajax标签加载。禁用工具栏,IE7工作正常。 Wibya有一个“Javascript Conflict”模式,我已经尝试过这个模式以及改变我的DocType,正如他们所建议的那样。

我把它缩小到了几个方面。首先,quicktabs行为基于选项卡的“类型”:

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中,我得到了一些有意义的东西,一个带有块ID的对象,一个类型等等......但是我知道了这个:< / p>

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

有人有什么想法吗?

更新:我目前正在使用Drupal特定的wibya模块,工具栏本身在我的网站上运行正常,无论是使用IE,Firefox还是Chrome。问题是该页面上的ajax选项卡无法通过wibiya工具栏运行。我倾向于同意@clive这是一个jQuery / javascript冲突,但我不确定我能做些什么。

至于运行Drupal 6,我继承了系统,截至目前,无法升级。

更新:我刚尝试使用http://drupal.org/node/1058168上的说明加载jQuery 1.4。这导致IE正常工作,但现在Chrome和Firefox不喜欢它。

UPDATE:这是在Drupal 6上运行的jQuery 1.3和使用至少1.4的Wibiya工具栏之间的冲突。我接受了@clive的回答,主要是因为如果我不得不继续使用Drupal 6,这是我必须要忍受的事实。

1 个答案:

答案 0 :(得分:1)

我最好的猜测是你使用的是Drupal 6,它随jQuery 1.2.6一起提供(或1.3.2与jQuery update module一起使用.Wibiya baar反过来使用jQuery 1.4.2。

根据Wibiya support forums上的页面(我相信您已经看过):

 如果页面加载了另一个版本的jQuery,如1.2.6或1.3.2之前,Wibiya bar加载自己的jQ 1.4.2不起作用。没有酒吧,没什么。

但是如果你首先加载自己的jQ 1.4.2,那么你的栏就可以了,尽管所有其他的Drupal功能都很糟糕,比如民意调查,投票,分层选择标签,漂亮的菜单,一些可折叠等等。

Drupal存在很多这类问题,这就是社区提出变通方法和解决方案的原因:Drupal specific Wibiya module可能会为您节省很多麻烦。

<强>更新

您的网站上存在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的其余部分,从而使您的选项卡不起作用?