问题标签 [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 回答
352 浏览

.net - Internet Explorer 能否运行针对不同 .NET Framework 版本的附加组件?

如果我在 .NET Framework 4.0 之上构建一个 IE Add-On,​​它能否与其他针对不同 .NET Framework 版本(即 2.0)的 Add-On 同时使用?

另外,我应该关心关于这个主题的不同版本的 IE 吗?

非常感谢你。

0 投票
2 回答
626 浏览

c# - Internet Explorer 插件工具栏按钮错误

我目前正在用 C# 开发一个 IE 工具栏按钮,它应该能够获取当前选项卡的内容并使用它。但是,每当单击按钮时,都会调用 IObjectWithSite.SetSite 函数(我的代码将在最后发布)并返回以下错误:

无法将类型为“System.__ComObject”的 COM 对象转换为接口类型 SHDocVw.IWebBrowser2”。此操作失败,因为对具有 IID 的接口的 COM 组件上的 QueryInterface 调用

该功能在加载站点时正常工作,但仅在单击工具栏中的按钮时才会引发此错误。如前所述,调用 SetSite 函数,然后调用 IOleCommandTarget.Exec 函数。

所以,我想我的问题是:我如何转换传递给 SetSite 函数的对象,以便我可以访问 Internet Explorer 当前打开的选项卡上的文档?

我目前对这两个功能的相关代码如下:

提前致谢。

0 投票
1 回答
583 浏览

c# - 如何在IE插件的子域中获取IFrame的页面源

我正在使用 C# 中的 BandObjects 制作一个 IE 插件。我正在让我的网络浏览器导航到一个页面,假设它是 example.com。在该页面中有一个 IFrame,其 src 是 sub.example.com。因此,IFrame 指向一个子域。我能够获取 IFrame 的 URL,但无法获取页面源,当我在浏览器中查看时,它就在那里,但是通过代码我只能查看脚本,没有数据。我正在粘贴 IFrame:

当我通过 Visual Studio 在 HTML 视图中查看此元素时,它会向我显示数据,即一封电子邮件,而文本视图会显示此内容。如果这个 iframe,我如何获得 HTML 视图或说页面源。所以,总的来说,我想要这个 IFrame 中包含的数据,浏览器以某种方式执行它,但我怎么能用代码来做呢?我访问了很多网站、论坛,但无法正常工作。

0 投票
0 回答
743 浏览

internet-explorer - 从 IE Addon 编辑 cookie

我正在尝试使用 C#.net 和 SpicIE 框架创建一个插件。我想从我的插件中编辑特定域的 cookie。我想从 cookie 读取/写入值。我该怎么做?

如果有任何方法可以编辑域的 cookie,请帮助我。

0 投票
4 回答
8383 浏览

javascript - 如何在 JavaScript 中制作 IE 插件/扩展?

我需要创建一个简单的 IE 插件,并试图弄清楚如何在 JavaScript 中做到这一点。到目前为止,我在 MSDN 上看到了一堆 .NET 示例,我还看到了 FireBreath 项目(这有点酷,但它是用 C++ 编写的),但在纯 JavaScript 中什么也没有。

有没有办法让 IE 的扩展有点像我们为 FF/Chrome/Opera 做的一样?

谢谢。

PS:我不需要任何 UI 组件,我所需要的只是跟踪页面加载并稍微更改 HTML 页面,仅此而已。

0 投票
1 回答
444 浏览

internet-explorer-8 - 启用 IE 保护模式时不显示桌带工具栏按钮

我开发了一个附加按钮,它使用当前选项卡的 URL 将 tcp 消息发送到另一个进程。这就是它所做的一切

由于我的经验仅限于托管代码,因此我使用了这篇文章Extending Explorer with Band Objects using .NET and Windows Forms

创建我的工具栏按钮。问题是在 Windows vista 和 7 上启用 IE 保护模式时它完全不显示。

我读了这篇文章http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx#wpm_elebp

并使用我的桌带的 GUID 创建了一个提升策略,但仍然没有用

有没有办法从托管代码的角度来处理这种情况?

0 投票
1 回答
360 浏览

c# - SpicIE - OnDocumentComplete 未被调用

我下载了 SimpleLogger 示例插件。当我运行它时,我注意到 OnDocumentComplete 没有被调用。虽然正在调用 OnBeforeNavigate。它没有被调用的原因可能是什么。我正在使用 IE8。

0 投票
2 回答
1099 浏览

c# - 我的 Internet Explorer 加载项不起作用

我已经编写了示例 IE 插件(基于在 Internet 上找到的示例)。此插件制作日志文件并在其中写入来自 OnDocumentComplete 和 OnBeforeNavigate2 事件的信息。不幸的是,这不起作用。我在 IE 中成功安装了这个插件并且它是可见的 - 但正如我所说,它不起作用(信息未写入日志文件)。

这是这个插件的代码:

这个插件有什么问题?

0 投票
1 回答
6906 浏览

internet-explorer - 从 Javascript 调用 BHO 方法?

我正在尝试从 javascript 调用我的 BHO 方法。问题与以下帖子中所述相同:

  1. 从 Javascript 函数调用 BHO
  2. http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/91d4076e-4795-4d9e-9b07-5b9c9eca62fb/
  3. 从运行在 Web 浏览器控件中的 JavaScript 脚本调用 C++ 函数

第三个链接是另一篇谈论它的SO帖子,但我不明白需求和代码。此外,共享的工作示例在带有 ie 8 的 windows 7 和带有 ie 7 的 windows vista 上不断崩溃。

如果有帮助,我的 BHO 是使用 ATL 用 C++ 编写的。

我试过的:

我写了一个非常基本的 BHO 并尝试了Igor Tandetnik提到方法。没有产生异常,但是当我在 IE 中打开以下 html 文件时,它会显示object undefined

问题:

  1. 请澄清是否可以从 javascript 公开和调用 BHO 方法,或者我是否必须使用 activex 公开它(如[2]中的jeffdav回答)?如果是,那么该怎么做。
  2. 基本上我想扩展window.external上面链接[2]中显示的方式使用var x = new ActiveXObject("MySampleATL.MyClass");; 两个调用约定是相同还是不同?

笔记:

  1. SO上有一个相关的帖子,暗示可以通过将其插入[id(1), helpstring("method DoSomething")] HRESULT DoSomething();BHO IDL文件中。我不确定它是如何完成的,也无法通过谷歌找到任何支持资源。
  2. 我知道这篇文章call-into-your-bho-from-a-client-script,但没有尝试过,因为它正在使用 ActiveX 解决问题。
  3. 我避免使用 ActiveX 的原因主要是由于安全限制。

编辑 1


似乎有一种方法可以扩展window.external. 检查这个。特别是标题为IDocHostUIHandler::GetExternal: Extending the DOM.现在假设我们的 IDispatch 接口位于实现 IDocHostUIHandler 的同一对象上的部分。然后我们可以这样做:

这种方法的问题在于它不会附加到现有的 windows 方法,而是替换它们。请告诉我是否错了。

编辑 2


The BHO Class:

// TestScript.cpp : Implementation of CTestScript

The Javascript:

编辑 3


在花了三天时间之后,我认为我应该走 ActiveX 路径。编写一个基本的 activex 是一种简单的方法,编写一个并在所有主要的 IE 版本上进行测试。我将这个问题保持开放状态,请参阅 Uri 回答中的评论(非常感谢他)。我已经尝试了他的大部分建议(除了 4 和 5)。I will also suggest you to see the MSDN IDispatcEx sample. 如果您找到解决方案,请发布,如果我找到解决方案,那么我一定会在这里更新。

编辑 4


See my last comment in URI's post. Issue Resolved.

0 投票
3 回答
2917 浏览

c# - 如何创建 Internet Explorer 插件?

如何使用 .net 创建 Internet Explorer 插件。我所需要的只是右键单击上下文菜单下的一个菜单。

.net 是必须的。

编辑:我想要做的是向 IE 添加一个上下文菜单。