[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
。