源代码在这里。
支付宝登录的安全控件默认是勾选的,如果想要取消默认勾选,可以使用greasemonkey模拟点击安全控件。但是支付宝首页的登录页面实际上是一个异步加载的iframe,稍微有点麻烦。带注释的源代码如下:
// 绑定事件
window.onload = function() {
var counter = 0;
var waitForOption = setInterval(function(){
// 如果取消勾选成功或者连续5次失败,不再尝试
if(uncheckSafeLoginOption() || counter++ > 5) {
clearInterval(waitForOption);
}
}, 1000);
}
function uncheckSafeLoginOption() {
var id = 'safeSignCheck';
// 单独的登录页面直接查找元素
// 首页需要查找iframe后再查找元素
var safeLoginOption = document.getElementById(id) ||
getFrameDocument('loginIframe').getElementById(id);
if(safeLoginOption) {
if(safeLoginOption.checked) safeLoginOption.click();
return true;
}
return false;
}
function getFrameDocument(frameId) {
var frame = document.getElementById(frameId);
return frame.contentDocument || frame.contentWindow.document;
}
在greasemonkey中针对支付宝首页和单独的登录页面新建一个user script,复制上面的代码,即可实现异步取消勾选。默认最多尝试5次,即5秒内IFRAME没加载完毕的话就不会再尝试。