几件事:
语言编码可能是一个因素,下面会详细介绍。
jQuery.click()
无法在各种 Greasemonkey 脚本场景中工作。MouseEvents
在这个答案中使用。
警惕 AJAX。这是<input>
动态添加或修改的吗?如果是这样,请使用waitForKeyElements
之前链接的答案。
由于输入实际上触发了一个javascript函数,而不是试图点击,通常直接调用该函数就足够了。像这样:
unsafeWindow.getCSVData();
另请参阅GM 文档中的“生成点击事件”。
而不是依赖像CSV保存
您的 jQuery 选择器这样的有问题的字符,而是使用更多页面的周围结构(您的问题应该显示)。例如,也许:
var targSubmit = $("form.foo div.bar input[type=submit]:eq(2)");
链接到目标页面和/或提供实际的 HTML 以帮助选择选择器。
正如其他答案中提到的,这是 5 分钟的错误间隔。使用 5 x 60 x 1000,或300000
.
不要使用通用或关键字作为函数或全局变量名。click
太通用了,function click(){...
可能会window.click
根据您的脚本注入而覆盖。
不要忘记指令。@grant
把它们放在一起,这应该可以工作:
// ==UserScript==
// @name autoclick
// @namespace yy
// @description yy
// @include http://...
// @version 1
// @grant none
// ==/UserScript==
setInterval (clickSpecialSubmit, 5 * 60 * 1000); // 5 minutes
function clickSpecialSubmit () {
unsafeWindow.getCSVData ();
}
或者可能替换clickSpecialSubmit
为:
function clickSpecialSubmit () {
// THIS NEXT LINE MUST BE TUNED TO MATCH YOUR ACTUAL PAGE!
var targSubmit = $("form.foo div.bar input[type=submit]:eq(2)");
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
targSubmit[0].dispatchEvent (clickEvent);
}
我无法让 Greasemonkey 脚本使用Big5(traditonal)
和包含这些字符。Firefox 在错误控制台中报告“非法字符”。
它可能只是我的测试系统,但请注意 Greasemonkey 脚本必须是有效的 UTF-8。从源代码:
error.scriptCharset=Error reading script: All Greasemonkey scripts MUST be encoded with UTF-8.