问题标签 [ieaddon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
77 浏览

angularjs - 由于附加组件,AngularJS IE9 崩溃

在让我的 IE9 安装赶上用户的 IE9 KB 版本之后,我让她运行“Internet Explorer(无加载项)”。在窗口中搜索“Internet Explorer”,您应该会看到它。如果您的网站正常工作,那么您就知道这是一个流氓加载项导致 IE 崩溃。然后是反复试验。

0 投票
1 回答
1072 浏览

.net - 如何更改我的 IE 扩展以解决另一个模块 (flash.ocx) 中的访问冲突导致 IE 崩溃?

我有一个 Internet Explorer 扩展程序(一个 BHO),它可以在数千台机器上很好地工作,但在某些情况下似乎会导致 Flash 因访问冲突而使 iexplore.exe 崩溃。我可以尝试做些什么来避免这种冲突?

更多细节:

在一个客户的环境中,我们遇到这样一种情况,在使用 Flash 访问网站并关闭 IE 选项卡后,选项卡进程崩溃。仅当 Flash 和我的扩展均已启用且目前无法在该公司环境之外的工作站上复制时才会发生这种情况。如果我的扩展被配置为在该页面上什么都不做,它仍然会发生 - 即我的一些代码仍然执行但很少。

如果该网站不在受信任的站点中,则该选项卡在保护模式下运行,并且崩溃的结果是一个窗口,显示该网页要运行 dw20.exe(即 Dr Watson)例子

如果该网站被添加到受信任的站点,则会将一个错误写入 Windows 应用程序事件日志,并且 IE 会重新打开该选项卡,并显示一条小的信息栏消息,说明 IE 从崩溃中恢复了它。无论哪种方式都令人沮丧!用户真的不在乎当他们关闭选项卡时进程是否崩溃,所以我很高兴有一个解决方法,这意味着不会向用户显示错误消息并且选项卡不会重新打开。

Windows 应用程序事件日志没有说太多,但它确实说 iexplore.exe 进程因模块闪存故障而崩溃:

这是一个相当新的 Flash 版本,但不是最新版本。他们尝试升级到最新版本,但症状相同。

他们的工作站运行了 Sophos 防病毒软件,在极少数情况下,我们发现防病毒软件会导致我们的扩展出现问题。我们在停止所有提到 Sophos 的 Windows 服务后进行了测试,并且发生了同样的问题,所以我很确定它与此无关。

我的扩展是使用 .NET 3.5 SP1 构建的,由于与其他扩展存在潜在的运行时冲突,这不是一种理想的方法,但目前就是这样。

如果我禁用我的扩展程序,问题就会消失。如果我禁用 Flash,问题就会消失。故障模块是Flash32_13_0_0_214.ocx强烈指出它在那里是一个错误,但我认为理论上它可能是我的代码中的一个问题。我的扩展没有执行任何非托管代码,所以不可能这样,所以我想不出我的扩展可以做任何可能导致 AccessViolation 的事情。这留下了 Flash 中存在错误的可能性,这似乎完全有可能,或者我与 IE 中的 COM 对象交互的方式存在问题。然而,Flash 团队不太可能调查这样的错误报告,除非我能指出一些具体且可复制的东西,而且现在我无法在任何开发机器上复制,所以这不是很好。即使它是 Flash 错误,从客户的角度来看,这与我的产品中的错误没有什么不同:要么我修复它,要么我的产品将被卸载,他们将保留 Flash。

选项

我希望的是一些关于:

  • 我可以在我的代码/产品中尝试什么可以避免与 Flash 冲突的方法吗?例如,重新设置我的 dll 以将我的扩展移动到不同的内存区域是否有希望工作?为 .NET 4.0/4.5 重新编译是否有机会工作?

  • 我能做些什么来复制这个问题……为什么这在其他几十家公司不是问题,而在这家公司却是一个问题?有什么想法可能是触发问题的环境因素,而不是在不同设置的工作站上?

  • 尝试获取崩溃转储或有关崩溃的其他诊断信息(例如崩溃时的 ProcMon)是否有任何意义?我没有进行此类诊断的专业知识,所以我想避免它,除非它可能会引导我回答我可以在我的产品中做哪些不同的事情或查明闪存模块中的确切错误(如果真的有是一个)。

  • 我很高兴有一种让它静默崩溃的方法,例如阻止 IE 在崩溃时重新打开选项卡。

我可能需要一段时间才能有时间与客户一起测试不同的选项,所以我想尝试一些事情。任何想法都非常感谢。

到目前为止,我有一些随机的想法。它们中的任何一个听起来都值得尝试吗?

  • 使用 .net 4 重新编译
  • 在我的 SetSite(null) 方法(卸载扩展程序时发生的事件)中,我有几行清理代码,例如Marshal.FinalReleaseComObject(webBrowser)GC.Collect(). 删除其中一项或多项:可能 GC 或 COM 清理会弄乱 Flash 的内存空间。
  • 重新定位我的 dll。
  • 在工作站上卸载并重新安装IE9,看看是否有任何效果。不是一个适用于全公司的解决方案,但可能表明他们的 IE 图像存在问题。

更新

客户再次复制了问题,而故障模块不是 Flash ocx jscript9.dll。他们也报告说看到了同样的情况,ntdll.dll尽管我自己没有看到。

所以我想这会打开它与 Flash 无关的...

0 投票
2 回答
234 浏览

javascript - 如何获取在 HTML 页面上执行的 Javascript 函数的返回值

我正在尝试使用 csharp 为 Internet Explorer 浏览器开发一个插件,并尝试将 javascript 注入到加载的页面。要注入 javascript,我使用了以下代码。代码被注入并且警报工作正常。但下面给出的代码应该将“msg”的值返回到输出。当我运行此代码时,我得到空值作为输出。请帮助。

0 投票
0 回答
140 浏览

c# - 使用 C# 清除 Internet Explorer 的地址栏

我正在用 C# 开发一个 IE 插件,我需要清除 IE 的地址栏,即将它设置为空字符串但留在当前页面上。此页面是位于本地主机上的 html,并替换了 IE 的默认起始页。当用户打开一个新选项卡时,地址栏应该是空的,并且不包含 html 文件的丑陋路径。

简而言之:是否可以以编程方式清除地址栏但仍留在加载的页面上。如果是这样,怎么做?

0 投票
0 回答
96 浏览

visual-studio - 如何为 Internet Explorer 创建按钮扩展

我必须创建一个扩展,在 Internet Explorer 的右上角添加一个按钮(在页面上打开一个 iframe)和一个右键单击鼠标的上下文菜单。我在添加按钮时遇到问题。我遵循了本教程:https ://code.msdn.microsoft.com/CSIEToolbarButton-c2f3e3e5 但是这样我只能在命令栏中添加一个按钮: 在此处输入图像描述 但我需要在下一张图片中绘制圆圈的按钮: 在此处输入图像描述 使用crossrider 我可以做到,但我需要自己构建扩展。有人可以帮助我吗?我应该像上面提到的那样修改教程中的一些代码吗?

谢谢。

0 投票
1 回答
478 浏览

c# - 如何使用 IE 插件向页面注入样式

我正在尝试将我为 Google Chrome 编写的内容脚本转换为 IE 插件,主要使用此答案中的代码。

我需要注入一个样式表,并且我找到了一种使用 Javascript的方法。我想我也许可以使用 C# 来做同样的事情。这是我的代码:

如果我只是注释掉以下行......

...其余代码完美执行(#elem_id替换元素并执行我注入的 JavaScript)。

尝试注入样式表时我做错了什么?这甚至可能吗?

编辑:我发现我试图注入 CSS 的站点请求文档模式 5,并且当兼容性视图被禁用时,我的代码运行良好。但是,即使启用了兼容性视图,我该如何让它工作呢?

0 投票
1 回答
38 浏览

internet-explorer - 将配置传递给 IE 插件

我有一个使用 BHO 用 C++ 编写的 IE 插件,我想使用 Log4net 将日志记录引入插件。我不打算为此插件提供任何 UI(下拉菜单等)。因此,要启用、禁用和设置日志级别,我有哪些选项?我认为的两个选项包括从文件中获取配置(在保护模式下运行时有一些警告)。我在某处读到的第二个选项是加载一个 URL,通过它我可以传递我的参数。例如,我刚刚在 IE 启动时读取了第一个 URL,如果它与特定字符串匹配,我使用它来设置我的参数以记录该会话(否则使用默认值)。

还有其他更好的选择吗?

谢谢!

0 投票
0 回答
883 浏览

c# - 如何异步发送多个“POST HttpWebRequest”并获得响应C#

我正在开发 IE 插件,现在出现了问题。我在谷歌上冲浪了很多,但没有找到解决方案。问题是我正在从我的 C# 插件向另一台服务器发送一个帖子 httpwebrequest 并从该服务器获取响应。现在我想从一个表单发送多个请求。我发送的第一个请求运行良好,但是当我按下第二个按钮再次发送 httpwebrequest 时,它给了我错误。

这是我的代码:

调用方法:

谁能帮我解决这个问题。

提前致谢。

0 投票
1 回答
929 浏览

javascript - 如何为 IE 11 开发和部署附加组件

有人可以回答这些问题吗?

  1. 是否可以为 IE 11 开发一个可访问网络 API(UDP/TCP 套接字)的插件?
  2. 有没有像 Chrome Web Store 这样的网站来发布插件?
  3. 有没有办法从网页安装插件?
  4. windows phone 和 windows desktop 的 IE 11 插件开发和部署流程是否相同?

谢谢

0 投票
0 回答
67 浏览

visual-studio-2013 - Visual Studio Web 负载测试工具添加

我正在尝试运行 Visual Studio 2013 Ultimate 工具来运行 Web 性能测试。我的 IE10 浏览器不断提示启用以下插件。我一直单击启用按钮,但没有任何反应。这个对话框就在那里。我尝试从管理插件屏幕启用此插件,但我的启用/禁用按钮显示为灰色。如何启用此插件?

在此处输入图像描述 在此处输入图像描述