谷歌浏览器插件开发注意事项

正文开始

[md]

manifest.json

{
  "name": "chrome扩展获取页面dom对象信息",
  "manifest_version": 2,
  "version": "1.0",
  "author":"lr",
  "description": "chrome扩展,给页面对象绑定点击事件用于获取百度搜索输入框中用户输入的关键字。",
  "content_scripts": [{"matches": ["*://*/*"],"js": ["jquery-3.2.1.min.js" ,"receiver.js"]}],
  "browser_action": {"default_popup": "hello.html"},
  "permissions": ["*://*/*","tabs"]
}

1.js的作用域

default_popup里的html包含的js(简称:dejs)和 content_scripts里的js(简称:ctjs) 是各自独立的,各自需要手动引入。

2.dejs和ctjs交互

dejs这样写:

   chrome.tabs.getSelected(null, function (tab) {//获取当前tab
            //向tab发送请求
            chrome.tabs.sendRequest(tab.id, { action: "GetBaiduKeyWord" }, function (response) {
            });
        });

ctjs这样写:

   'use strict';
function run() {
    chrome.extension.onRequest.addListener(//监听扩展程序进程或内容脚本发送的请求
        function (request, sender, sendResponse) {
            if (request.action == "GetBaiduKeyWord") {
                $('#kw').val('abcdd');
                $('#result_logo').remove();
            }
        }
    );
}
run();

3.chrome.extension.onRequest.addListener

当打开“审查调试内容”时,这句话会触发报错,不打开“审查调试内容”即可。

或者某些版本的谷歌浏览器不支持此函数,则需要改成: chrome.runtime.onMessage.addListener

正文结束

js 正则替换返回值做回调函数 jq打包表单数据支持重名以数组的格式提交