我有这个jQuery代码:
var vis = (function(){
var stateKey, eventKey, keys = {
hidden: "visibilitychange",
webkitHidden: "webkitvisibilitychange",
mozHidden: "mozvisibilitychange",
msHidden: "msvisibilitychange"
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function(c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
vis(function(){
document.title = vis() ? 'Visible' : 'Not visible';
});
现在做的是更改页面的文档标题。如果页面不可见,则会将其更改为vise verca。
我的问题是,我该如何使用这个函数:
if page is visible{
//do something
}
if page is not visible{
//do something else
}
答案 0 :(得分:0)
您的vis()
函数在传递一个事件时绑定一个事件处理程序,否则返回状态。因此:
vis(function(event) {
if ( vis() ) {
// visible
} else {
// not visible
}
});
或者更详细地说:
var handler = function(){
// calling vis() with no arguments will return a boolean
if (vis()) {
// visible
} else {
// not visible
}
}
// if a handler is passed, it gets bound to the event
// thus, runs on *any* visibility state change
vis(handler);