huc*_*lla 6 javascript iframe google-chrome httprequest google-chrome-extension
我正在撰写Chrome扩展程序,代表用户定期检查网页.为了不引人注目,页面将加载到扩展程序隐藏的背景页面上的iframe中.是否可以仅识别此iframe发出的网络请求?
我最初的实验(见下文)似乎表明这很棘手.获取特定选项卡的所有Web请求非常简单:您拥有tabId,并可以使用该tabId过滤Web请求(通过WebRequest API).但对于后台页面iframe,不清楚"tabId等效"标识符是什么,或者如何使用它来过滤Web请求.
有什么想法吗?
我最初的实验细节如下.frameId值看起来很有希望,但我不相信它在扩展中是唯一的.
这个问题已经被要求用于Firefox:识别源自hiddenDOMWindow(或其中一个iframe)的请求
==实验==
作为实验,我:
这是一个捕获的iframe Web请求:
{
"frameId": 2,
"method": "GET",
"parentFrameId": 0,
"requestId": "11988",
"tabId": -1,
"timeStamp": 1395423892612.272,
"type": "sub_frame",
"url": "http://en.wikipedia.org/wiki/Frog"
}
Run Code Online (Sandbox Code Playgroud)
tabId和parentFrameId值看起来很可疑.
frameId值看起来很有希望.如果我们知道帧的frameId,我们可以使用它来过滤请求吗?
可能,但是frameId值在浏览器扩展中并不是唯一的.我创建了另一个相同的扩展,并获得其背景iframe以加载相同的URL.它生成了一个相同的查看请求,具有相同的frameId(对于它自己的 - 但不同的 - iframe).此外,此Chromium问题涉及"框架ID冲突":https://code.google.com/p/chromium/issues/detail? id = 173325
小智 2
事态
你好 - 正在努力解决类似的问题,这就是我发现的:
和值看起来很可疑
tabId。parentFrameId
查看返回到 WebRequest 回调处理程序的详细信息对象的文档:
tabId当没有选项卡时(例如在后台页面中),设置为 -1。使用chrome.tabs您实际上可以获得后台页面的 tabId,但不幸的是,正如您所发现的,WebRequest 总是为后台页面提供 -1tabId
一般来说,似乎WebRequest将被弃用,DeclarativeWebRequest但后者的开发目前已暂停。
潜在的实际解决方案:
我还没有对此进行测试,但可能只有从后台页面发出的请求才可用,并且 tabId 为 -1。您可能会过滤这些内容。
黑客解决方案:
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |