开发者

Wibiya toolbar breaks Drupal quicktabs

开发者 https://www.devze.com 2023-04-03 15:50 出处:网络
I have the Drupal Quicktabs module installed at: http://ar.sacherokeedev.com/auction-directory I\'ve also installed the wibiya toolbar, http://www.wibiya.com.

I have the Drupal Quicktabs module installed at: http://ar.sacherokeedev.com/auction-directory

I've also installed the wibiya toolbar, http://www.wibiya.com.

Everything works fine in Firefox and Chrome, but in IE7, with the toolbar enabled, it breaks the ajax tab loading. With the toolbar disabled, IE7 works fine. Wibya has a "Javascript Conflict" mode, and I've tried that as well as changing my DocType, as they suggest.

I've narrowed it down to a couple of things. First, quicktabs behavior is based on the "type" of the tab:

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;
    }

In my case, when using the toolbar in IE, tab.tabObj.type is "undefined". So, I'm thinking that wibiya is hijacking my objects or something.

I also get a runtime error, "Object does not support this property or method" in the following block:

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>';
}

Has anyone seen this before, or have any suggestions?

Update: I did console.log(tab.tabObj) and in Firefox and Chrome, I get something that makes sense, an Object with a block id, a type, etc... But in i.e. I get this:

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

Anyone have any ideas?

UPDATE: I am currently using the Drupal specific wibya module, and the toolbar itself works fine on my site whether one is using IE, Firefox or Chrome. The issue is that the ajax tabs on that page are prevented from functioning by the wibiya toolbar. I'm inclined to agree with @clive that it's a jQuery/javascript conflict, but I'm not sure what I can do about it.

As for running Drupal 6, I inherited the system, and as of now, can't upgrade.

UPDATE: I just tried loading jQuery 1.4 using the instructions at http://drupal.org/node/1058168. That caused IE to work properly, but now Chrome and Firefox don't like it.

UPDATE: This is a conflict between jQuery 1.3 which runs on Drupal 6 and the Wibiya toolbar which uses at least 1.4. I'm accepting @clive's answer, mainly because he's right about the fact that this is just s开发者_如何学Pythonomething that I'm going to have to live with if I have to keep using Drupal 6.


My best guess would be that you're using Drupal 6 which ships with jQuery 1.2.6 (or 1.3.2 with the jQuery update module. The Wibiya baar conversely uses jQuery 1.4.2 upwards.

According to a page on the Wibiya support forums (which I'm sure you've already seen):

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.

There a lots of these types of problems with Drupal which is why the community comes up with workarounds and solutions: The Drupal specific Wibiya module will probably save you a lot of headaches.

UPDATE

There's a JS error on your site:

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.

Is it possible that unsafe frame attempt is stopping IE7 from processing the rest of the JS, thereby making your tabs not work?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号