3

使用 mootools 的滑块标题脚本在 IE7 和 9 中运行良好,但在 8 中弹出错误。在所有其他浏览器中也运行良好。

Line: 2148
Char: 3
Error: Invalid procedure call or argument
Code: 0
URL: (Path to mootools.svn.js)

代码是:

setStyle: function(property, value) {
    switch (property) {
        case 'opacity': 
            return this.setOpacity(parseFloat(value));
        case 'float': 
            property = (window.ie) ? 'styleFloat' : 'cssFloat';
    }
    property = property.camelCase();
    switch ($type(value)) {
        case 'number': 
            if (!['zIndex', 'zoom'].contains(property)) 
                value += 'px'; 
            break;
        case 'array': 
            value = 'rgb(' + value.join(',') + ')';
    }
    this.style[property] = value;
    return this;
},

第 2148 行是这样的:

this.style[property] = value;

几天来我一直在寻找答案,但我对 JavaScript 不是很好,所以任何帮助都将不胜感激。

4

2 回答 2

2

你在使用http://code.google.com/p/cnetjavascript/downloads/detail?name=mootools.svn.js&can=2&q=吗?

它已被弃用,如果您检查源以获取对它的引用,window.ie它看起来像以下代码段。如果您正在使用它,您应该考虑升级到更新且受支持的 javascript 框架。

/*
Class: window
    Some properties are attached to the window object by the browser detection.

Properties:
    window.ie - will be set to true if the current browser is internet explorer (any).
    window.ie6 - will be set to true if the current browser is internet explorer 6.
    window.ie7 - will be set to true if the current browser is internet explorer 7.
    window.khtml - will be set to true if the current browser is Safari/Konqueror.
    window.gecko - will be set to true if the current browser is Mozilla/Gecko.
*/

if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
else if (document.childNodes && !document.all && !navigator.taintEnabled) window.khtml = true;
else if (document.getBoxObjectFor != null) window.gecko = true;
于 2012-12-07T16:00:09.313 回答
1

当您在通话后遇到异常时this.style[property] = value,这可能是一个无效值的实际问题 - 例如width: -5或'scroll:“none”'或类似的。

只需调试它并查看它是什么属性和值并在上游捕获它 - 通常是由于缓动/弹性(例如,高度上的 Fx.morph 与自定义过渡到 0)。

如果您无法防止该值无效,请在动画调用或触发它的任何内容周围加上 try/catch。

于 2012-12-07T23:25:29.460 回答