自动登录网站Chrome

时间:2015-02-02 17:33:49

标签: javascript google-chrome-extension

Chrome打开后,有没有办法立即从Chrome扩展程序中打开标签?我的学校有一个访问点,每次打开计算机使用互联网时都必须登录,我想制作一个自动登录的扩展程序,但我无法弄清楚如何使脚本运行只要我打开Chrome。

编辑:登录页面不是我打开浏览器时打开的页面:我必须手动转到某个站点让系统提示我登录,否则它会告诉我,我没有连接到互联网。

2 个答案:

答案 0 :(得分:4)

制备

您需要做的是:

  1. 使用所需的manifest.json文件创建基本的“空”扩展名。
  2. 使用"background" field声明chrome.tabs API,该"content_scripts" field将运行backgrond.js脚本以在打开Chrome时打开登录页面。然后,您需要为此添加权限。
  3. 在清单中声明{{3}},并设置contnet.js脚本以匹配打开的登录网址,并允许您登录。<​​/ li>
  4. 将在创建的标签中执行的脚本(content.js)将包含使用用户名和密码自动填充字段的代码,然后单击登录按钮。
  5. 实施

    1. 创建一个基本扩展,其中包含三个文件:

      • manifest.json:扩展程序的清单
      • background.js:扩展程序的后台脚本
      • content.js:您的内容脚本
    2. 在清单中写下必要字段,例如:版本,名称,背景等。然后添加"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"
              }
          }
      }
      
    3. 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,并检查打开的选项卡是否正确。

    4. 现在,在您的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();
      

      显然,您必须使用真实凭据替换yourusernameyourpassowrd

    5. 这就是全部,非常简单:只需在其中注入标签创建和内容脚本。此扩展程序现在会在您打开Chrome时立即登录!

答案 1 :(得分:0)

您可以使用Background Page创建扩展程序。后台页面只需要在登录页面的右侧URL open a new tab。您的清单会为后台页面指定一个脚本

"background": {
  "scripts": ["background.js"]
}

并且该脚本只包含这一行JavaScript:

chrome.tabs.create({ url: 'the login page url' });

这是有效的,因为后台页面在浏览器启动时加载并保留在内存中。因此,当您打开浏览器时,js文件只执行一次。更新扩展程序时可以重新加载后台页面,但由于这将是一个私有扩展,您不必担心这一点,它只会使开发更容易。