扩展/脚本/程序会刷新页面直到找到或找不到某个短语/关键字?

扩展/脚本/程序会刷新页面直到找到或找不到某个短语/关键字?

是否有任何程序/扩展可以与浏览器一起使用,以刷新网页并搜索特定的短语或文本,然后在找到或未找到该短语时停止。

例如,假设我创建了一个网站,使用随机器循环显示单词“一”,“二”和“三”。

如果我将其设置为查找该单词,则该程序将刷新页面直到找到单词“Three”,然后一旦找到就停止。

或者

该程序将刷新页面,直到找不到单词“Three”,如果我将其设置为查找该单词,则一旦找不到就停止。

我知道我们可以使用 curl 和 grep 来做到这一点,但网页浏览器无法加载该页面。这不是我想要的。看看是否有解决方案,我们也可以在浏览器上加载

如果不存在这样的东西,有什么想法可以编写这种程序吗?使用什么工具来做到这一点?

谢谢

答案1

我编写了一个小脚本来搜索页面,如果未找到则刷新页面。您需要安装坦普猴扩展并使用以下脚本:

$(document).ready(function() 
{
    var LookFor = "test"; // Change this to find a different string

    if($('body:contains("' + LookFor + '")').length > 0) 
    {
        alert("Found: " + LookFor);
    }
    else
    {
        location.reload();
    }
});

您还需要将 jQuery 库粘贴到 Tampermonkey 中的此脚本之前以将其包含在内(除非 Tampermonkey 可以为您完成这一操作?)。

搜索仅限于body元素及其子元素,但是您可以更改body*搜索整个页面源代码,但是如果脚本在元素中找到您要查找的内容,它可能会停止刷新页面head


如果您想要不断刷新页面直到找不到特定的单词,请将脚本更改为以下内容:

$(document).ready(function() 
{
    var LookFor = "test";

    if($('body:contains("' + LookFor + '")').length > 0) 
    {
        location.reload();
    }
    else
    {
        alert("Didn't find: " + LookFor);
    }
});

答案2

基于@Mythrillic 所做内容,这里有一个可以在 Tampermonkey 中运行的版本,无需担心添加 JQuery:

window.addEventListener('load', function() {
    console.log("Page loaded.");
    var LookFor = "test"; // Change this to find a different string

    var content = document.body.textContent || document.body.innerText;
    var hasText = content.indexOf(LookFor) !== -1;
    if(hasText) {
        console.log("Text found! Alerting.");
        alert("Found: " + LookFor);
    } else {
        console.log("Text not found - reloading.");
        location.reload();
    }
});

只需确保将设置中的 run-at 属性更改为“document-end”就可以了。

唯一奇怪的是,尽管有事件监听器,但有时会陷入困境并在页面加载之前运行代码。如果有人能解决这个问题,我将不胜感激。

相关内容