Chrome打开后,有没有办法立即从Chrome扩展程序中打开标签?我的学校有一个访问点,每次打开计算机使用互联网时都必须登录,我想制作一个自动登录的扩展程序,但我无法弄清楚如何使脚本运行只要我打开Chrome。
编辑:登录页面不是我打开浏览器时打开的页面:我必须手动转到某个站点让系统提示我登录,否则它会告诉我,我没有连接到互联网。
答案 0 :(得分:4)
您需要做的是:
manifest.json
文件创建基本的“空”扩展名。"background"
field声明chrome.tabs
API,该"content_scripts"
field将运行backgrond.js
脚本以在打开Chrome时打开登录页面。然后,您需要为此添加权限。contnet.js
脚本以匹配打开的登录网址,并允许您登录。</ li>
content.js
)将包含使用用户名和密码自动填充字段的代码,然后单击登录按钮。创建一个基本扩展,其中包含三个文件:
manifest.json
:扩展程序的清单background.js
:扩展程序的后台脚本content.js
:您的内容脚本在清单中写下必要字段,例如:版本,名称,背景等。然后添加"content_scripts"
字段来声明您的脚本。您的manifest.json
应如下所示:
{
"manifest_version": 2,
"name": "Some name",
"version": "0",
"permissions": [
"tabs"
],
"background": {
"scripts": ["background.js"]
},
"content_scripts": {
{
"matches": ["http://your-login-page-url..."],
"js": "/content.js"
}
}
}
在background.js
脚本中,您可以在扩展程序启动时打开一个标签页(也就是Chrome打开时),如下所示:
chrome.tabs.create({url: "http://your-login-page-url..."});
// this URL ---------------^^ should be the same as the one that matches the content script in the manifest.json
使用真实的URL更改URL,并检查打开的选项卡是否正确。
现在,在您的content.js
脚本中,它将被加载到刚刚创建的选项卡中,您将获得正确的字段并填充它们,然后单击登录按钮。
例如,如果登录页面如下所示:
...
<span>User:</span><input id="username" type="text"/>
<span>Password:</span><input id="password" type="password"/>
<button id="login-btn">Log in</button>
...
然后在您的content.js
脚本中执行:
document.getElementById('username').value = 'yourusername';
document.getElementById('password').value = 'yourpassword';
document.getElementById('login-btn').click();
显然,您必须使用真实凭据替换yourusername
和yourpassowrd
。
这就是全部,非常简单:只需在其中注入标签创建和内容脚本。此扩展程序现在会在您打开Chrome时立即登录!
答案 1 :(得分:0)
您可以使用Background Page创建扩展程序。后台页面只需要在登录页面的右侧URL open a new tab。您的清单会为后台页面指定一个脚本
"background": {
"scripts": ["background.js"]
}
并且该脚本只包含这一行JavaScript:
chrome.tabs.create({ url: 'the login page url' });
这是有效的,因为后台页面在浏览器启动时加载并保留在内存中。因此,当您打开浏览器时,js文件只执行一次。更新扩展程序时可以重新加载后台页面,但由于这将是一个私有扩展,您不必担心这一点,它只会使开发更容易。