访问指定URL时自动点击页面按钮失效,求问题排查
问题分析与修正方案
可能的错误点
- DOM元素获取时机错误:脚本最外层直接调用
document.querySelector时,DOM还未完全加载,导致loginInp、emailInp、sendInp大概率返回null,后续操作全部失效。 - URL匹配过于严格:用
window.location.href完全匹配URL,一旦实际URL带有参数、哈希值,或者末尾斜杠不一致,判断条件就不成立,代码不会执行到点击逻辑。 - 点击代码被注释:
sendInp.click()被注释,即便前面逻辑正常,也无法触发按钮点击。
修正后的代码
document.addEventListener("DOMContentLoaded", () => { // 延迟到DOM加载完成后再获取元素 const loginInp = document.querySelector('.login-form--hide'); const emailInp = document.querySelector('.email-form--hide'); const sendInp = document.querySelector('.send-form--hide'); const loginLoc = window.localStorage.getItem('name'); const emailLoc = window.localStorage.getItem('email'); // 改用pathname判断URL,避免参数、哈希值干扰 if (window.location.pathname === '/success/') { // 先校验元素和本地存储值是否存在,避免报错 if (loginInp && loginLoc) { loginInp.value = loginLoc; } if (emailInp && emailLoc) { emailInp.value = emailLoc; } console.log('Worked'); // 取消注释,并且确保元素存在再执行点击 if (sendInp) { sendInp.click(); } } });
内容的提问来源于stack exchange,提问作者Лео
相关产品推荐
相关产品推荐

