是否有可能知道HTTPRequest的目标DOMWindow
Is it possible to know the target DOMWindow for an HTTPRequest?
我正在开发一个Firefox扩展,它要求我通过过滤掉一些HTTPRequest来拦截页面加载。我使用此处给出的说明完成了此操作。请注意,我的问题来自此链接的内容。
我使用了HTTPObservers部分下给出的方法。它奏效了,我确实能够提取正在发送的请求的相应网址。
但是,我真正需要的另一件事是获取目标 DOM 窗口,其中与 HTTPRequest 相关的内容即将加载。可以使用HTTPObservers吗?
在上面的链接中,描述了使用WebProgressListeners的另一种方式。
我也试过了。onLocationChange() 方法只返回 url 栏中的位置更改。是否有可能以某种方式使用这些进度侦听器中的任何一个来获取HTTPRequest网址?因为如果是这样,那么如果我理解正确,aWebProgress.DOMWindow会给我我需要的窗口。
注意:我使用 gwt 作为扩展,使用 JSNI 作为上述部分。
通常,您可以使用附加到请求或其负载组nsILoadContext
接口(遗憾的是几乎没有文档记录)来做到这一点。以下是您将如何执行此操作:
function getWindowForRequest(request)
{
if (request instanceof Components.interfaces.nsIRequest)
{
try
{
if (request.notificationCallbacks)
{
return request.notificationCallbacks
.getInterface(Components.interfaces.nsILoadContext)
.associatedWindow;
}
} catch(e) {}
try
{
if (request.loadGroup && request.loadGroup.notificationCallbacks)
{
return request.loadGroup.notificationCallbacks
.getInterface(Components.interfaces.nsILoadContext)
.associatedWindow;
}
} catch(e) {}
}
return null;
}
请注意,此函数应偶尔返回null
- 并非每个 HTTP 请求都与窗口相关联。
相关文章:
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- Javascript事件.锚的目标问题
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 使用javascript将表单提交到iframe目标中
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- 通过JavaScript设置表单目标
- 当两个单独的单词被放在目标上时,使用Jquery获取一个值
- 如何从目标C中的stringByEvaluatingJavaScriptFromString:方法执行长javascri
- Firefox事件.目标问题
- AngularJs的ng-click$事件将子元素作为目标传递
- 从定位目标中的元素中清除类
- three.js EffectComposer's渲染目标
- 是否可以使用Jquery操作窗体的目标窗口
- 是否有可能知道HTTPRequest的目标DOMWindow