页面可见性Api

时间:2015-05-10 22:31:23

标签: javascript jquery

我使用此网站http://www.samdutton.com/pageVisibility/中的代码,但我的脚本无法使用chrome中的有效或无效标签

我有jquery 2.0和jquery ui

android:layout_toRightOf="@id/age"
android:layout_marginLeft="8dp"

原始代码

var hidden, visibilityChange; 
if (typeof document.hidden !== "undefined") {
    hidden = "hidden";
    visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
    hidden = "mozHidden";
    visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
    hidden = "msHidden";
    visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
    hidden = "webkitHidden";
    visibilityChange = "webkitvisibilitychange";
}

function handleVisibilityChange() {
    if (document.hidden) {
       setInterval(function() { console.log('hidden'); }, 1000);
    } else {
       setInterval(function() { console.log('view'); }, 1000);
    }
}

if (typeof document.addEventListener !== "undefined" || typeof hidden !== "undefined") {
    document.addEventListener(visibilityChange, handleVisibilityChange, false);

}

1 个答案:

答案 0 :(得分:2)

if (document.hidden)

应该是

if (document[hidden])

第一个语句表示“访问hidden”的属性document,而第二个表示“使用变量hidden中的字符串中的名称访问属性(hidden {}}}的{1}}或mozHidden等等。

同样,document也等同于第一个陈述。

然后,在您的其他document['hidden']语句中,在分配事件侦听器之前,您需要检查是否 if < / strong> addEventListener存在或已定义。所以

hidden

应该成为

if (typeof document.addEventListener !== "undefined" || typeof hidden !== "undefined")

然后它应该有用(除了它可能应该是if (typeof document.addEventListener !== "undefined" && typeof hidden !== "undefined") 而不是setTimeout)。

如果这仍然不起作用,则很可能在代码中的其他位置出现语法错误。我建议您使用JSHint验证您的代码。