使用GM_setValue()
或localStorage
保存页面加载之间的输入状态。
这是一个完整的 Greasemonkey 脚本,使用 jQuery,显示了该过程。它适用于普通的静态页面。(对于 AJAX 驱动的页面,您也可以使用waitForKeyElements
):
// ==UserScript==
// @name _Save checkbox state between page visits
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant unsafeWindow
// ==/UserScript==
//-- Get saved state:
var chk0wasChked = (localStorage.getItem ('check0_state') == "true");
//-- Get current state:
var chk0isChked = $('input[name=check0]').prop ('checked');
/*-- If the states don't match, click the checkbox to synch them up.
We need a small delay to avoid race conditions.
*/
setTimeout (setThenMonitorCheckboxState, 333);
function setThenMonitorCheckboxState () {
if (chk0wasChked != chk0isChked) {
unsafeWindow.$('input[name=check0]').click ();
}
//-- *After* the initial set, monitor & save any future state changes:
$('input[name=check0]').click ( function () {
var chk0isChked = $('input[name=check0]').prop ('checked');
localStorage.setItem ('check0_state', chk0isChked);
} );
}
注意:问题不清楚。如果原始点击处理程序input[name=check0]
是由目标页面设置的。使用上面的代码。
但是,如果原始点击处理程序input[name=check0]
是由
Greasemonkey 脚本设置的,则更改为unsafeWindow.$
just $
。