Chrome Extension实战:页面注入

前言:通过注入GitHub的登录页,来实现自动登录。

一、背景

前段时间学习页面JS替换时写的一些测试代码,比较基础的知识,适合页面注入入门。

二、原理

content_scripts: 可以将指定inject.js注入到特定(matches)的页面,inject.js运行在宿主页面,可以访问宿主页面的DOM树,所以我们就能够通过inject.js来操作宿主页面。

更详细的说明可以参考google文档content_scripts

三、详细步骤

1. 配置manifest.json

    "content_scripts": [
        {
            "matches": [ "*://github.com/login*" ],
            "js": [ "js/inject.js" ],
            "run_at": "document_end",
            "all_frames": true
        }
    ],

注意

  • matches字段:表示只对*://github.com/login登录页面生效,只有打开GitHub的登录页面时才会把inject.js注入到页面中。
  • run_at字段:document_end 页面加载完后注入 | document_start页面加载开始时注入 | document_idle游览器会在start|end之间选择一个不繁忙的时间注入。
  • all_frames:是否注入所有iframes。(有些document中还包含iframes,为true也会向其注入)。

    2. inject.js

function inputPassword() {
    var passwd = document.getElementById("password");
    if ( passwd != null ) {
        passwd.value = "password";
    }   
    var login = document.forms[0];
    if ( login != null ) {
        login.submit();
    }
}
function injectPage() { 
    var username = document.getElementById("login_field");
    if ( username != null ) {
        username.value = "username@mail.com";
    }   
    if ( username != null ) {
        window.setTimeout( inputPassword, 2000 );
    }
}
injectPage();

注意

  • getElementById获取的元素,最好判断是否为空;
  • 小技巧:用户名和密码之间最后加一个windows.setTimeout来延迟执行;

四、结尾

这些测试用例同样适用淘宝、京东等的登录。(不能直接用)


实例源码下载链接传送门下载源码


WEB页面JS替换,可以参考这篇文章替换页面JS


比较简单,大神绕过,别吐槽,欢迎交流!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值