标签行为在IE中工作< 9,Safari和Chrome,但不在FF和IE9中

时间:2013-02-12 18:49:13

标签: tabs mootools contao

我想知道是否有人可以在这里给我一个线索。此页面上有一些标签切换内容http://www.brt.org.uk/donate

适用于Safari,Chrome和IE版本至8版本我认为,但不适用于Firefox和IE 9.这对我来说是一个谜,因为它曾在所有浏览器中运行良好。

我会很感激任何想法。

有这个脚本可以做到,它使用了Mootools http://www.brt.org.uk/plugins/tabcontrol/tabcontrol.js

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你正在使用mootools 1.2.1 - 这是3岁以上。有两个问题会影响它。

  1. firefox 18.0.1引入了String.prototype.contains,其实现与mootools附带的版本不同。直到版本1.3,该方法没有被“保护”并被mootools重写,因此更改会破坏选择器引擎。

  2. 由于对bind实施的更改,1.2.1可能与IE9不兼容。这是在1.2.4(或5)中修复的,它也与旧的mootools中使用的某些浏览器嗅探方法有关。请参阅1.2.5的发行说明 - http://mootools.net/blog/2010/09/15/mootools-core-1-2-5/ - 这些可能不会影响每个站点/用例,但是当它们发生时,您需要升级。

  3. 总的来说,你需要升级 - 我建议1.4.5与mootools网站的兼容性。

    这个标签类写错了:

    TabControl = new Class();
    // ..
    TabControl.prototype = {
        // stuff
    }
    

    这完全绕过了mootools类构造函数,它在设置继承和解除引用构造函数对象的原型方面做了很多工作。

    重写

    var tabControl = new Class({
        // 'methods' and properties... 
    });