是否有任何程序/扩展可以与浏览器一起使用,以刷新网页并搜索特定的短语或文本,然后在找到或未找到该短语时停止。
例如,假设我创建了一个网站,使用随机器循环显示单词“一”,“二”和“三”。
如果我将其设置为查找该单词,则该程序将刷新页面直到找到单词“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”就可以了。
唯一奇怪的是,尽管有事件监听器,但有时会陷入困境并在页面加载之前运行代码。如果有人能解决这个问题,我将不胜感激。