Tag: internet explorer 8

如何唯一标识在会话0中运行的Internet Explorer窗口?

我正在创建自动化internet explorer WCF web services 。 有多个Web服务调用需要访问Internet Explorer的同一实例。 但是,由于WCF服务托管在IIS所有对Web服务的调用都在会话0中执行。现在要访问Internet Explorer的同一实例,我使用SHDocVw.InternetExplorer.HWND属性返回Internet Explorer实例的窗口句柄。 在下面的代码中,当作为IIS 7上的WCF服务执行时,由于会话0隔离,窗口句柄始终返回0。 此外,我无法挂钩到相同的IE实例或循环所有打开的IE窗口。 我可以枚举进程列表并查找在会话0中打开的每个IE窗口的进程ID,但不能将System.Diagnostics.Process为SHDocVw.InternetExplorer对象。 以下是我的代码: public int GetWhd() { InternetExplorer ie = new InternetExplorer(); ie.Visible = true; return ie.HWND; } public int SetWhd(string whd) { int wh = Int32.Parse(whd); InternetExplorer ie = null; ShellWindows s = new ShellWindows(); foreach (SHDocVw.InternetExplorer ie1 in s) { […]

是否可以使用BHO(IE8)跟踪用户点击的链接

阅读关于BHO的内容,我知道我可以看到您可以跟踪用户导航的方式 – 但是 – BHO是否可以识别用户点击了哪个链接(例如,如果页面上存在两个链接,用户可以单击以导航到目标a – 是否可以确定实际单击了哪个链接?

BHO暴露javascript方法适用于IE 9+但在早期版本中失败

我正在制作一个向JavaScript公开方法的BHO。 它在IE 9和IE 10中工作,但在IE 8中运行RuntimeBinderException失败: “mshtml.HTMLWindow2Class” does not contain “signJson” 。 代码主要基于实时重新加载IE扩展 。 这是一种将函数注入窗口的方法: public void InjectScriptResource(dynamic window) { var windowEx = (IExpando)window; if (windowEx.GetProperty(“signJson”, BindingFlags.Default) == null) { windowEx.AddProperty(“signJson”); window.signJson = this; } } IE 9中IE 8中的mshtml.HTMLWindow2Class什么不同? 注入方法的正确方法是什么?

IE8不会下载具有启用UAC的自定义mime /类型的文件

我在本地计算机上运行.net服务(Windows 7 x64,IE8,.net 3.5,C#),它将文件返回给浏览器以响应用户操作。 使用firefox或chrome,文件正确下载,我们的应用程序通过自定义mime类型启动,一切都很好。 但是,使用IE8,我收到一个“无法从中下载文件的对话框。无法打开此网站。请求的网站不可用或无法找到。请稍后再试”。 使用fiddler,我validation了IE确实从服务接收了有效负载。 如果我关闭UAC,IE会下载该文件并启动相关的应用程序。 关闭UAC不是一个可行的解决方案,因为我们的客户将启用它。 如何让IE8在启用UAC的情况下启动相关应用程序? 编辑: 在使用此处所述的编程ID重新注册mime类型后,我可以让IE打开显示“打开或保存”对话框,以便在第二次从地址栏请求链接时。 为什么它第一次不起作用?

Web浏览器控制IE8兼容模式开/关开关

我在使用WebBrowser控件导航到网站时遇到IE8兼容性问题。 奇怪的是有时网站有效,但很可能不会。 我有时可以刷新页面,也可以。 只是去IE8中的页面我遇到了相同的CSS渲染问题所以我切换到兼容模式,它刷新并正确呈现。 有没有办法模拟WebBrowser控件的这种效果。 我希望能够像在Internet Explorer中一样关闭按钮并关闭和打开模式。 这可能吗? 如果是这样,有人知道怎么做? 谢谢

Process.Start(“IEXPLORE.EXE”)在启动后立即触发退出事件..为什么?

我在xp中安装了IE8有一个奇怪的问题。 我试图使用c#中的System.Diagnostics.Process.Start方法启动IE。 我需要捕获IE的退出事件并执行一些操作。 但我最终遇到了一个相当奇怪的问题,IE在发布后会立即触发退出的事件。 这是示例代码 Process objProcess = Process.Start(“IEXPLORE.EXE”, “http://google.com”); if (objProcess != null) { objProcess.EnableRaisingEvents = true; objProcess.Exited += new EventHandler(myProcess_Exited); } public static void myProcess_Exited(object sender, System.EventArgs e) { MessageBox.Show(“You exited”); } 但上面的代码完全适用于laucnching不同的进程(例如:记事本),当我关闭exe时它会触发退出事件。 这只会让问题启动IE 8.有人可以澄清我的问题是什么? UPDATE 大多数朋友回复了我的post,并说为什么你不能只使用URL? 为何坚持使用IE? 这里的原因 该应用程序的最终目的是从Windows应用程序启动URL,并在IE上工作时隐藏exe。 关闭IE后显示exe。 谢谢

C#:将CSS注入MSHTML实例的最佳方法是什么?

我正在尝试将一些其他HTML附带的CSS注入到C#托管的WebBrowser控件中。 我试图通过底层的MSHTML(DomDocument属性)控件来执行此操作,因为此代码用作完整IE8 BHO的各​​种原型。 问题是,虽然我可以注入HTML(通过mydomdocument.body.insertAdjacentHTML)和Javascript(通过mydomdocument.parentWindow.execScript),但它完全拒绝我的CSS代码。 如果我在注入后将包含我要插入的HTML的字符串与目标页面源进行比较,那么MSHTML的源代码将包含除 元素及其基础源之外的所有内容。 CSS通过了CSS 2.1的W3Cvalidation。 它没有做任何太棘手的事情,除了一些背景图像属性将图像直接嵌入到CSS中(例如background-image: url(“data:image/png;base64 …)”,并注释掉这些行不会改变结果。 更奇怪的是(而且我不确定这是否相关),是我上周没有遇到任何问题。 本周我又回到了它,在切换了一些在实际注入之前处理要注入的HTML的代码之后,它不再起作用了。 当然,我认为我的某个更改可能会出现问题,但在对所有逻辑进行评论并将其直接输入后,HTML仍然显示为未格式化。 目前我正在注入标签,虽然我试图注入并且遇到了类似的结果。 在此先感谢您的帮助! 汤姆

ASP.NET忽略Web.config中的IE7兼容模式标记

我的Web.config文件中有以下部分 但是 在我的网站上呈现页面的标题中不存在。 我按照这篇文章中的建议ASP.NET应用程序 – 设置IE7兼容模式? 但它似乎没有按预期使用IE8和IIS6。 任何提示?

如何以编程方式关闭IE8 WebBrowser控件中的怪癖模式?

我想在C#应用程序中使用IE8作为WebBrowser控件。 如何禁用“怪癖模式”并强制IE符合标准(就其实施而言)?