单击 F5 键(刷新)时,Internet Explorer (IE9) 中会出现哪个事件?我如何在我的 BHO 中使用 Handler 来捕捉它?
注意:我在 C# 中为 IE9 创建了一个 BHO。我的类扩展了允许我通过 SetSite 函数添加处理程序的 IObjectWithSite。
public int SetSite(object site)
{
webBrowser = (SHDocVw.WebBrowser)site;
//events here...
}
单击 F5 键(刷新)时,Internet Explorer (IE9) 中会出现哪个事件?我如何在我的 BHO 中使用 Handler 来捕捉它?
注意:我在 C# 中为 IE9 创建了一个 BHO。我的类扩展了允许我通过 SetSite 函数添加处理程序的 IObjectWithSite。
public int SetSite(object site)
{
webBrowser = (SHDocVw.WebBrowser)site;
//events here...
}
如果您正在开发一个注入 Javascript 的浏览器插件,我发现挂钩 ondocumentcomplete 和 ondownloadcomplete 很有用。
Ondocumentcomplete 一旦 DOM 被加载并且可以被操作,就会触发,但它会错过刷新。
Ondownloadcomplete 等到所有资源(例如,图像)都已下载,但会捕获刷新。这种延迟可能会很长。
通过钩住两者,您大部分时间都会获得响应式插件,并且不会错过刷新。然后,您的 javascript 可以包含一个检查以避免运行两次。就像是:
// Inject the code, but only once
if (typeof myplugin == 'undefined') {
myplugin = new function () {
// Your code runs here.
};
}
我发现以下页面提供了丰富的信息:
没有直接的方法,很难跨不同版本的 IE 实现。尽管您可以使用一些事件的组合来实现这一点。请注意,以下方法并非万无一失。
链接: