写出一个谷歌拓展监听指定URL响应 并输出响应内容的简单例子
时间: 2024-12-23 20:15:37 浏览: 8
在Chrome浏览器中编写一个简单的Google插件(Chrome Extension),可以使用JavaScript的`chrome.webRequest` API 来监听特定URL的网络请求,并获取其响应内容。这是一个基础的示例:
```javascript
// manifest.json (扩展程序的基本配置文件)
{
"manifest_version": 2,
"name": "Response Listener",
"version": "1.0",
"permissions": ["webRequest", "webRequestBlocking"],
"content_scripts": [
{
"matches": ["<all_urls>"], // 监听所有URL
"js": ["listener.js"]
}
]
}
// listener.js (核心JavaScript文件)
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
if (details.url === 'http://example.com') { // 指定的URL
return { // 返回一个新的headers,包含对响应拦截
requestHeaders: details.requestHeaders.concat({
name: 'User-Agent', // 添加自定义头
value: 'Custom User Agent'
})
};
}
else {
return { // 如果不是目标URL,直接允许请求
redirectUrl: details.url
};
}
},
{urls: ['http://example.com']}, // 监听指定URL
['blocking']
);
chrome.webRequest.onHeadersReceived.addListener(
function(details) {
console.log('Response headers:', details.responseHeaders); // 输出响应头
chrome.webRequest.stopRequestBlocking(); // 停止阻止请求,让浏览器继续发送
},
{url: 'http://example.com'},
['responseHeaders']
);
```
当你访问`http://example.com`这个URL时,这个插件会拦截请求并添加自定义User-Agent头部。然后它会在接收到响应头的时候打印到控制台。
注意:这只是一个基本的例子,实际使用时可能需要处理更多复杂的场景,如处理异步操作、错误处理等。同时,对于生产环境,建议将关键代码放在更安全的隔离环境中,避免隐私数据泄露。
阅读全文