【问题标题】:Chrome extension to refresh a page every minute and run a (javascript) script every time it refreshesChrome扩展每分钟刷新一个页面并在每次刷新时运行一个(javascript)脚本
【发布时间】:2016-06-11 03:51:12
【问题描述】:

我想要什么: 我的建议是检查是否在页面中添加了新内容(我不拥有),所以我想制作一个脚本来保存最后添加到 cookie 中的内容并每分钟刷新页面:如果 cookie 没有与最后添加的内容不匹配,这意味着有新内容,我会收到通知。

让我们试试伪代码

主文件:

include: functions.js;

cookie last_content_added= get_first_paragraph();

//Refresh script
do (every_minute){
page_reload();
}
when.page.reload.complete {
run script_check_content
}

functions.js

script_check_content{
var content_check = get_first_paragraph();

if (content_check == cookie[last_content_added])
{
//do nothing
}
else{
//new content was added
play.notification.mp3

cookie[last_content.added] = get_first_paragraph();
}

}

我没有为我正在寻找的东西考虑一个更简单的解决方案吗?

我是 chrome 扩展程序的新手,如果您可以将不同文件中的代码分开,就像它是一个真正的扩展程序一样,我将非常感谢非常

【问题讨论】:

    标签: javascript jquery dom google-chrome-extension


    【解决方案1】:

    我建议使用 'chrome.tabs.query',使用它来获取具有指定属性的所有选项卡或所有选项卡(如果未指定属性)和'chrome.tabs.executeScript' 将javascript 代码注入到调用'window.location.reload() 的页面中。刷新页面。

    这是获取当前选项卡并使用 chrome.tab 方法重新加载它的示例代码:

    chrome.tabs.query({active: false, currentWindow: true}, function (arrayOfTabs) {
    var code = 'window.location.reload();';
    chrome.tabs.executeScript(arrayOfTabs[0].id, {code: code});
    });
    

    另外,包括 'onCompleted' 侦听器,以便在它完全加载和初始化时进行侦听。 chrome.webNavigation.onCompleted.addListener(function callback).

    【讨论】:

    • 即使标签当前不是“活动”,有没有办法做到这一点?
    • 是的,将'active'设置为false。
    【解决方案2】:

    看看MutationObserver,它提供了一种对 DOM 变化做出反应的方法。您可以提供回调来响应 DOM 更改,而无需使用计时器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      相关资源
      最近更新 更多