Javascript错误未捕获异常

时间:2013-04-24 09:14:51

标签: javascript jquery ios

我正在使用名为pull.js的javascript文件。它用于Ipad中的下拉刷新,但是,当我使用其他jquery和javascript停止工作?它给出了以下未捕获的异常错误:

  

”   错误:未捕获的异常:

     

[例外......“没有足够的参数”nsresult:“0x80570001   (NS_ERROR_XPC_NOT_ENOUGH_ARGS)“location:”JS frame :: pull.js ::   匿名::第26行“数据:否]   “

我正在传递此js文件的内容:

var PULL = function() {
    var content,
        pullToRefresh,
        refreshing,
        contentStartY,
        success,
        start,
        cancel,
        startY,
        track = false,
        refresh = false;

    var removeTransition = function() {
        //content.style['-webkit-transition-duration'] = 0;
    };
    return {
        init: function(o) {
            content = document.getElementById('content');
            pullToRefresh = document.getElementById('pull_to_refresh');
            refreshing = document.getElementById('refreshing');
            success = o.success;
            start = o.start;
            cancel = o.cancel;

            document.body.addEventListener('touchstart', function(e) {
                e.preventDefault();
                contentStartY = parseInt(content.style.top);
                startY = e.touches[0].screenY;
            });

            document.body.addEventListener('touchend', function(e) {
                if(refresh) {
                    //content.style['-webkit-transition-duration'] = '.5s';
                    content.style.top = '50px';

                    pullToRefresh.style.display = 'none';
                    refreshing.style.display = '';

                    success(function() { // pass down done callback
                        pullToRefresh.style.display = '';
                        refreshing.style.display = 'none';
                        content.style.top = '0';
                        content.addEventListener('transitionEnd', removeTransition);
                    });

                    refresh = false;
                } else if(track) {
                    //content.style['-webkit-transition-duration'] = '.25s';
                    content.style.top = '0';
                    content.addEventListener('transitionEnd', removeTransition);

                    cancel();
                }
                track = false;
            });

            document.body.addEventListener('touchmove', function(e) {
                var move_to = contentStartY - (startY - e.changedTouches[0].screenY);
                if(move_to > 0) track = true; // start tracking if near the top
                content.style.top = move_to + 'px';

                if(move_to > 50) {
                    refresh = true;
                } else {
                    //content.style['-webkit-transition'] = '';
                    refresh = false;
                }
            });
        }
    };
}();

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:5)

XPC错误不是来自调用像parseInt这样的纯Javascript方法(和radix参数) 规范 ,因此所有这些评论在许多方面都是错误的。)


您所有addEventListener来电都是missing the third useCapture argument

下面:

document.body.addEventListener('touchstart', function(e) {
    ...
}, false);  //<-- add third argument

下面:

content.addEventListener('transitionEnd', removeTransition, false);  //<-- add third argument

下面:

document.body.addEventListener('touchend', function(e) {
    ...
}, false);  //<-- add third argument

下面:

content.addEventListener('transitionEnd', removeTransition, false);  //<-- add third argument

在这里:

document.body.addEventListener('touchmove', function(e) {
    ...
}, false); //<-- add third argument

请注意newer specification, the argument has been made optional。但这并不重要。