[英]Greasemonkey script halts execution after submitting form due to redirect
我正在尝试编写一个greasemonkey 脚本,该脚本将在允许您查看成熟的游戏内容之前自动执行Steam 商店年龄检查。
我的问题是表单提交后,网站自动重定向到新页面,剩下的greasemonkey脚本没有机会执行:
// ==UserScript==
// @name agecheck
// @include http://store.steampowered.com/agecheck/*
// @version 1.17
// @modified 11/23/2012
// @grant GM_xmlhttpRequest
// ==/UserScript==
//Mini script for doing steam age checks automatically (used when scraping steam sites)
if (/agecheck/i.test (location.pathname) ) {
var ageForm = document.querySelector ("#agegate_box form");
ageForm.querySelector ("[name='ageDay']").value = 18;
ageForm.querySelector ("[name='ageMonth']").value = 'August';
ageForm.querySelector ("[name='ageYear']").value = 1987;
ageForm.submit();
setTimeout( function(){ window.close(); }, 10000); //Never gets to run
}
为了验证代码是否有效,如果我简单地注释掉ageForm.submit();
语句,选项卡在 10 秒后根据需要关闭。
提交表单后如何关闭窗口?
我已经使用以下代码解决了这个问题,该代码将表单提交的结果加载到隐藏框架中,而不是允许表单更改当前窗口位置(这会停止油脂猴脚本):
if (/agecheck/i.test (location.pathname) ) {
var ageForm = document.querySelector ("#agegate_box form");
ageForm.querySelector ("[name='ageDay']").value = 18;
ageForm.querySelector ("[name='ageMonth']").value = 'August';
ageForm.querySelector ("[name='ageYear']").value = 1987;
var newFrame = document.createElement('frame');
newFrame.name = "PostResult"
document.body.appendChild(newFrame);
ageForm.target = newFrame.name;
ageForm.submit();
setTimeout( function(){ window.close(); }, 10000);
}
感谢 G. Kayaalp 的提示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.