gpt4 book ai didi

javascript - 如果页面包含特定文本,则重新加载(使用 javascript)

转载 作者:行者123 更新时间:2023-12-03 20:52:52 24 4
gpt4 key购买 nike

如果文本 We are sorry but we made a boo boo 出现然后

  1. 等待 5 秒
  2. 重新加载

我想在 JavaScript 中执行此操作。

尝试一下

(function () {
"use strict";

function walkTheDOM(node, func) {
if (node && node.nodeType) {
if (typeof func === "function") {
func(node);
}

node = node.firstChild;
while (node) {
walkTheDOM(node, func);
node = node.nextSibling;
}
}
}

function filterElementsByContains(elements, string) {
var toStringFN = {}.toString,
text = toStringFN.call(elements),
result,
length,
i,
element;

if (text !== "[object NodeList]" && text !== "[object Array]" && !($() instanceof jQuery)) {
return result;
}

result = [];
if (typeof string === "string") {
string = new RegExp("^" + string + "$");
} else if (toStringFN.call(string) !== "[object RegExp]") {
return result;
}

function getText(node) {
if (node.nodeType === 3) {
text += node.nodeValue;
}
}

length = elements.length;
i = 0;
while (i < length) {
text = "";
element = elements[i];
walkTheDOM(element, getText);
if (string.test(text)) {
result.push(element);
}

i += 1;
}

return result;
}

if(filterElementsByContains([document.getElementsByTagName("table")[0]], /We are sorry but we made a boo boo/).length) {
location.reload();
}

我认为,如果文本出现在特定位置,上述内容应该适用于该文本。我想让它更通用 - 以便文本可以出现在该页面上的任何地方

另外,我想知道如何添加一个暂停,例如,它在重新加载之前等待 5 秒。

我想我会添加类似这样的内容:

setTimeout(
function()
{
//location.reload();
}, 5000);

最佳答案

只需做一个 indexOf在 body 上 textContent/innerText属性

var content = document.body.textContent || document.body.innerText;
var hasText = content.indexOf("We are sorry but we made a boo boo")!==-1;
if(hasText){
setTimeout(function(){
window.location = "http://www.example.com";
},5000);
}

关于javascript - 如果页面包含特定文本,则重新加载(使用 javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25387999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com