0

大家都知道,我对 JavaScript 比较陌生,(而且我一直在尝试用纯 JS 来做事,而不是使用 jQuery 等)。在我签约的地方,我们有一个 Exchange 服务器,我使用 webmail 客户端。

为了防止它在没有任何活动时让我超时,我开始组合一个 Safari 扩展,因为我可以使用一个将 JS 注入页面。而且我认为这将是一个很好的练习,因为我正在从头开始学习 JS。

嗯,它的那部分工作,除了当你回复或发送新电子邮件时,所以我尝试添加第二段代码来防止这种情况,但它仍然会刷新。我不知道为什么。我将不胜感激任何帮助!我还必须添加规则来判断我是回复还是回复所有内容,但我认为如果我能做到这一点,我就能让那些人去做。

所以这是我的代码:

if (location.host === "mail.exmx.net") {
    /* The Domain is https://mail.exmx.net/owa/?ae=Folder&t=IPF.Note */

    var timer = setTimeout(function() {
        location.reload( );
    }, 30000 /* 30 Seconds used just as a test to speed up waiting time*/ );
}

else (location.href.indexOf("?ae=Item&t=IPM.Note&a=New") != -1) {
    /* my attempt at using a static part of the string that's in the location bar when a new email is created */
    clearTimeout(timer);
}
4

1 回答 1

1

你的代码很不稳定。而不是else,你需要else if.

当然,只有在设置了两个条件时才可以设置计时器(而不是设置计时器,然后清除它):

if (location.host == "mail.exmx.net" && location.href.indexOf("?ae=Item&t=IPM.Note&a=New") == -1) {

    /* The Domain is https://mail.exmx.net/owa/?ae=Folder&t=IPF.Note */

    var timer = setTimeout(function() {
        location.reload( );
    }, 30000 /* 30 Seconds used just as a test to speed up waiting time*/ );
}
于 2010-11-15T20:45:25.907 回答