代码没有问题,但是这个编辑框在脚本执行的时候它并没有加载出来
百度网盘的这个登录框应该是页面加载完成后才渲染的,这个时候你的代码已经执行完成了,执行的时候登录框没有加载出来,所以没有效果.
可以打一个log看一下:console.log(document.querySelector("#TANGRAM__PSP_4__userName"));它的输出是null
简单操作就可以试着增加一个延迟,像下面这样
// @match https://pan.baidu.com/
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
window.addEventListener("load", function(event) {
console.log(document.querySelector("#TANGRAM__PSP_4__userName"));
setTimeout(function(){//2s后再进行登录
if(document.querySelector("#TANGRAM__PSP_4__userName")==null){
//没有找到表示登录了,不再执行后续代码
return;
}
//未登录,执行登录代码
document.querySelector('#TANGRAM__PSP_4__userName').value='xxxxx';
document.querySelector('#TANGRAM__PSP_4__password').value='xxxx';
document.querySelector('#TANGRAM__PSP_4__submit').click();
},2000);
});
})();
也有其它方案,例如在它父级增减监听事件等...不过感觉会更麻烦,不如直接粗暴的增加延迟.(虽然可以更优雅)