我创建了以下greasemonkey 脚本来自动跳过蒸汽时代检查页面:
// ==UserScript==
// ...
// @include http://store.steampowered.com/agecheck/*
// ==/UserScript==
//Mini script for doing steam age checks automatically
if( document.URL.indexOf('agecheck') > -1 )
{
var form = document.getElementById('agegate_box').getElementsByTagName('form')[0];
form.ageDay.value = 18;
form.ageMonth.value = 'August';
form.ageYear.value = 1987;
form.submit();
}
这种页面的一个例子是:http ://store.steampowered.com/agecheck/app/16730/ 。请注意,如果您设置了“生日”cookie,此页面将自动跳至游戏store.steampowered.com
,因此您可能必须先将其删除。
当在 Windows XP 上运行的 Firefox 17.0 (beta) 上安装这个greasemonkey 脚本时,它可以正常工作。
然后,我在运行最新 FF (16) 的 Windows 7 机器上安装了该脚本。在这台机器上,脚本在访问 form.ageDay 时中断。错误控制台显示:
Error: form.ageDay is undefined
更奇怪的是,如果我只是将我的脚本粘贴到 Firefox Scratchpad (Shift+F4) 并执行它,它就可以找到并提交表单。
怎么可能在 XP 上 GM 脚本有效,而在 Win7 中,脚本在暂存器中有效,但在 Win7 上,脚本在 GM 中无效?
另一个奇怪的是,在Win7机器上,如果我激活Firebug,var form
显然有一个'ageDay'属性,但手表表达式返回未定义?