【发布时间】:2016-03-22 17:46:12
【问题描述】:
我正在尝试为 Firefox 设置一个在 javascript 插件 (Greasemonkey) 中运行的小脚本。我们有一个队列来监控到达票,我编写了一些应该每 2 分钟刷新一次页面并执行以下操作的代码:
如果在这个条件下找到票
if (isEmpty($('#incident_table > tbody'))&isEmpty($('#task_table > tbody')))
那么我希望发生以下情况:
- 任务栏闪烁并显示一条消息,因此可见
- 如果窗口被聚焦,它将显示“Tickets in the queue!”立即报警
- 如果窗口没有聚焦,它将等待 10 秒,如果仍然没有聚焦 - 显示“Tickets in the queue!”提醒并把窗户放在前面。
我有刷新和闪烁部分,但我无法让焦点部分工作......我一直在环顾四周,我发现 Firefox 在 window.focus() 和所有方面都有一些“问题” “带到前面”,下面的大部分代码都受到我在这个网站上找到的东西的启发。
感谢任何输入!我也对替代方案持开放态度 - 最后,这需要做的是刷新,检查条件并通知我是否已经在查看它或者它是否没有集中等待 10 秒,然后使用“软通知”(闪烁)然后如果我没有注意到它,把它带到前面。
问候,
丹
{
newExcitingAlerts = (function () {
var oldTitle = document.title;
var msg = "***NEW***";
var timeoutId;
var blink = function() { document.title = document.title == msg ? 'Tickets in queue!' : msg; };
var clear = function() {
clearInterval(timeoutId);
document.title = oldTitle;
window.onmousemove = null;
timeoutId = null;
};
return function () {
if (!timeoutId) {
timeoutId = setInterval(blink, 1000);
window.onmousemove = clear;
}
};
}());
$(document).ready(function(){
function isEmpty( el ){
return !$.trim(el.html());
}
if (isEmpty($('#incident_table > tbody'))&isEmpty($('#task_table > tbody'))) {
}
else{
newExcitingAlerts();
}
setTimeout(function() {
location.reload();
}, 120000);
});
}
【问题讨论】:
标签: javascript jquery firefox firefox-addon