// 点击扩展图标后弹出的窗口 var $msg = $('#msg').html(''); var $login = $('#login'); var $vocab = $('#vocab'); var $save = $('#save'); //登录 function login(){ var username = $.trim($('#username').val()); var password = $.trim($('#password').val()); if(!username || !password){ return showMsg('用户名或密码不能为空~~~') } // 设置credentials: 'include'后会共享youdao.com下的cookie fetch('https://logindict.youdao.com/login/acc/login', { credentials: 'include', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' }, body: util.serialize({ app: 'web', tp: 'urstoken', ru: 'http://dict.youdao.com', product: 'DICT', cf:3, fr:1, type: 1, um: true, username: username, password: md5(password), savelogin: 1 }) }) .then(function(res){ res.text().then(function(text){ if(text.indexOf('登出') > 0){ showAdd(); showMsg('登录成功!'); } else{ showLogin(); showMsg('登录失败~~~'); } }); }); }; $login.on('click', login); $('#username, #password').on('keydown', function(ev){ if(ev.keyCode === 13){ login(); } }); //显示登录 function showLogin(){ $('.login-box').removeClass('hide'); $('.add-box').addClass('hide'); }; //显示添加单词 function showAdd(){ $('.login-box').addClass('hide'); $('.add-box').removeClass('hide'); }; var timer = null; function showMsg(msg){ $msg.html(msg).css('opacity', 1); clearTimeout(timer); timer = setTimeout(function(){ $msg.css('opacity', 0); }, 1000); }; //添加单词 function addVocab(){ var vocab = $.trim($vocab.val()); if(!vocab){ return showMsg('请输入要添加的单词'); } fetch('http://dict.youdao.com/wordbook/ajax?'+util.serialize({ action: 'addword', date: new Date(), len: 'eng', q: vocab }), { credentials: 'include', method: 'get' }) .then(function(res){ res.json().then(function(ret){ if(ret.message === 'nouser'){ showMsg('请先登录~~~'); } else if(ret.message === 'adddone'){ showMsg('添加成功!'); } }); }) .catch(function(err){ showMsg(err); }); }; $save.on('click', addVocab); $vocab.on('keydown', function(ev){ if(ev.keyCode === 13){ addVocab(); } }); new Promise(function(resolve, reject){ //检测登录,通过访问生词本列表页,未登录用户会被重定向到登录 fetch('http://dict.youdao.com/wordbook/wordlist', { credentials: 'include', method: 'get' }) .then(function(res){ res.text().then(function(text){ var isLogin = false; //页面有登出二字,表示已登录,是不是很搞笑?哈哈 if(text.indexOf('登出') > 0){ isLogin = true; } else{ isLogin = false; } resolve(isLogin); }); }) }) .then(function(isLogin){ if(isLogin){ showAdd(); } //否则显示登录窗 else{ showLogin(); } });