javascript - 如何制作一个自动登录我的大学登录页面的 Chrome 扩展?

标签 javascript google-chrome

每次我必须访问网络时,我首先必须登录到我的大学登录页面,我怎样才能绕过它,我设法编写了一个 chrome 扩展,它会自动在页面上填充我的用户名和密码,但我怎样才能使浏览器为我点击登录按钮?有任何关于此的资源/想法/建议读物吗?

最佳答案

使用 Chrome 的“保存用户名和密码”功能?好吧,你不想这样做。

找到表单并提交。

如果表单有ID,则通过ID查找:

var form = document.getElementById('id');
form.submit();

如果没有,可能页面上只有一个表单,可以按如下方式查找:

var form = document.getElementsByTagName('form')[0];
form.submit();

如果这也不起作用,那么您可以使用用户名输入来查找其包含的表单。我假设您有对用户名输入的引用,因为您说过您可以为其填写一个值:

// Assume variable 'usernameInput' points to the username input element.
var form;
var p = usernameInput.parentNode;
while (p) {
    if (p.nodeName.toLowerCase() == 'form') {
        form = p;
        break;
    }
}

if (form) {
    form.submit();
}

等等。

您还可以查找“提交”按钮并单击它。

var myButton = document.getElementById('submitButton');
myButton.click();

我从内容脚本中单击或提交取得了不同程度的成功。也许导入 jQuery 会把事情搞砸 - 我不确定。所以我发现自己用这个 gem 显式发送鼠标事件(根据需要将其调整为其他事件类型):

function clickElement(el) {
    el.css('background-color', '#FFFF00');
    el = $(el).get(0);
    var evt = document.createEvent('MouseEvents');
    evt.initMouseEvent('click', true, true, document, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    el.dispatchEvent(evt);
}

关于javascript - 如何制作一个自动登录我的大学登录页面的 Chrome 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880179/

相关文章:

javascript - JavaScript 中带有 'named' 构造函数的数组? (例如 HTMLCollection)

javascript - 如何在 Dojo 中管理 ajax 响应

flutter - Chrome模拟器清除缓存

html - Chrome 不会为具有 z-index 和溢出滚动的绝对定位元素的单个子元素显示背景颜色

javascript - 在 Chrome 中跟踪事件传播的最佳方法是什么?

javascript - console.log(document.head) 结果随每次刷新而交替

javascript - AJAX 加载页面上的 Google map - 如何初始化?

Javascript for循环更改函数中文本区域的名称

javascript - 使用 JQuery Ajax 提交表单不在服务器中工作,但在本地主机中工作 codeigniter

css - CSS 动画完成后 Chrome 中的文本 "pops"变粗