我正在使用名为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;
}
});
}
};
}();
任何人都可以帮助我。
答案 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。但这并不重要。