覆盖 Javascript SetTimeout 时间但保留内部函数
Overwrite Javascript SetTimeout time but keep the inside function
我正在尝试制作一个 tampermonkey 脚本来减少 javascript 函数 (SetTimeout) 的时间,以便更快地重定向页面。页面代码是这样的:
<script type="text/javascript">
window.setTimeout(function() {
window.location.replace("http://linkhere.com/R4NDoM1CODEHeRE" + window.location.hash);
}, 3000);
</script>
在被这个重定向后我总是在同一页面结束(就像那些强迫你填写 reCaptcha 然后他们再次将你转移回同一页面,要求你等待几秒钟然后转移到另一个 reCaptcha 页面)。
有人可以帮我完成这个任务吗?
可以使用正则表达式找到 http://mylinkhere.link
并立即重定向到它(如果您愿意,也可以显示按钮)。
像这样的东西应该可以工作:
var target = /document\.getElementById\('show'\)\.innerHTML = '<a href="([^"]*)|replace\("([^"]*)" \+ window/.exec(document.documentElement.innerHTML);
window.location = target[1] || target[2];
编辑: 更正答案。将 contents
更改为 document.documentElement.innerHTML
。
编辑 2: 再次更正答案。
编辑 3: 更新了答案,使其适用于原始问题的两个页面。
为了更通用,覆盖 window.setTimeout
函数。
window.setTimeout = ((original) =>
(codeOrFunc, delay, ...args) =>
original(codeOrFunc, 0, ...args)
)(window.setTimeout);
聊天中的@Originato 解决方案:
(function() {
'use strict';
window.seconds = -1;
var target = /document\.getElementById\('show'\)\.innerHTML = '<a href="([^"]*)|replace\("([^"]*)" \+ window/.exec(document.documentElement.innerHTML);
window.location = target[1] || target[2];
})();
我正在尝试制作一个 tampermonkey 脚本来减少 javascript 函数 (SetTimeout) 的时间,以便更快地重定向页面。页面代码是这样的:
<script type="text/javascript">
window.setTimeout(function() {
window.location.replace("http://linkhere.com/R4NDoM1CODEHeRE" + window.location.hash);
}, 3000);
</script>
在被这个重定向后我总是在同一页面结束(就像那些强迫你填写 reCaptcha 然后他们再次将你转移回同一页面,要求你等待几秒钟然后转移到另一个 reCaptcha 页面)。
有人可以帮我完成这个任务吗?
可以使用正则表达式找到 http://mylinkhere.link
并立即重定向到它(如果您愿意,也可以显示按钮)。
像这样的东西应该可以工作:
var target = /document\.getElementById\('show'\)\.innerHTML = '<a href="([^"]*)|replace\("([^"]*)" \+ window/.exec(document.documentElement.innerHTML);
window.location = target[1] || target[2];
编辑: 更正答案。将 contents
更改为 document.documentElement.innerHTML
。
编辑 2: 再次更正答案。
编辑 3: 更新了答案,使其适用于原始问题的两个页面。
为了更通用,覆盖 window.setTimeout
函数。
window.setTimeout = ((original) =>
(codeOrFunc, delay, ...args) =>
original(codeOrFunc, 0, ...args)
)(window.setTimeout);
聊天中的@Originato 解决方案:
(function() {
'use strict';
window.seconds = -1;
var target = /document\.getElementById\('show'\)\.innerHTML = '<a href="([^"]*)|replace\("([^"]*)" \+ window/.exec(document.documentElement.innerHTML);
window.location = target[1] || target[2];
})();