问题标签 [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.
.net - Internet Explorer 能否运行针对不同 .NET Framework 版本的附加组件?
如果我在 .NET Framework 4.0 之上构建一个 IE Add-On,它能否与其他针对不同 .NET Framework 版本(即 2.0)的 Add-On 同时使用?
另外,我应该关心关于这个主题的不同版本的 IE 吗?
非常感谢你。
c# - Internet Explorer 插件工具栏按钮错误
我目前正在用 C# 开发一个 IE 工具栏按钮,它应该能够获取当前选项卡的内容并使用它。但是,每当单击按钮时,都会调用 IObjectWithSite.SetSite 函数(我的代码将在最后发布)并返回以下错误:
无法将类型为“System.__ComObject”的 COM 对象转换为接口类型 SHDocVw.IWebBrowser2”。此操作失败,因为对具有 IID 的接口的 COM 组件上的 QueryInterface 调用
该功能在加载站点时正常工作,但仅在单击工具栏中的按钮时才会引发此错误。如前所述,调用 SetSite 函数,然后调用 IOleCommandTarget.Exec 函数。
所以,我想我的问题是:我如何转换传递给 SetSite 函数的对象,以便我可以访问 Internet Explorer 当前打开的选项卡上的文档?
我目前对这两个功能的相关代码如下:
提前致谢。
c# - 如何在IE插件的子域中获取IFrame的页面源
我正在使用 C# 中的 BandObjects 制作一个 IE 插件。我正在让我的网络浏览器导航到一个页面,假设它是 example.com。在该页面中有一个 IFrame,其 src 是 sub.example.com。因此,IFrame 指向一个子域。我能够获取 IFrame 的 URL,但无法获取页面源,当我在浏览器中查看时,它就在那里,但是通过代码我只能查看脚本,没有数据。我正在粘贴 IFrame:
当我通过 Visual Studio 在 HTML 视图中查看此元素时,它会向我显示数据,即一封电子邮件,而文本视图会显示此内容。如果这个 iframe,我如何获得 HTML 视图或说页面源。所以,总的来说,我想要这个 IFrame 中包含的数据,浏览器以某种方式执行它,但我怎么能用代码来做呢?我访问了很多网站、论坛,但无法正常工作。
internet-explorer - 从 IE Addon 编辑 cookie
我正在尝试使用 C#.net 和 SpicIE 框架创建一个插件。我想从我的插件中编辑特定域的 cookie。我想从 cookie 读取/写入值。我该怎么做?
如果有任何方法可以编辑域的 cookie,请帮助我。
javascript - 如何在 JavaScript 中制作 IE 插件/扩展?
我需要创建一个简单的 IE 插件,并试图弄清楚如何在 JavaScript 中做到这一点。到目前为止,我在 MSDN 上看到了一堆 .NET 示例,我还看到了 FireBreath 项目(这有点酷,但它是用 C++ 编写的),但在纯 JavaScript 中什么也没有。
有没有办法让 IE 的扩展有点像我们为 FF/Chrome/Opera 做的一样?
谢谢。
PS:我不需要任何 UI 组件,我所需要的只是跟踪页面加载并稍微更改 HTML 页面,仅此而已。
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 创建了一个提升策略,但仍然没有用
有没有办法从托管代码的角度来处理这种情况?
c# - SpicIE - OnDocumentComplete 未被调用
我下载了 SimpleLogger 示例插件。当我运行它时,我注意到 OnDocumentComplete 没有被调用。虽然正在调用 OnBeforeNavigate。它没有被调用的原因可能是什么。我正在使用 IE8。
c# - 我的 Internet Explorer 加载项不起作用
我已经编写了示例 IE 插件(基于在 Internet 上找到的示例)。此插件制作日志文件并在其中写入来自 OnDocumentComplete 和 OnBeforeNavigate2 事件的信息。不幸的是,这不起作用。我在 IE 中成功安装了这个插件并且它是可见的 - 但正如我所说,它不起作用(信息未写入日志文件)。
这是这个插件的代码:
这个插件有什么问题?
internet-explorer - 从 Javascript 调用 BHO 方法?
我正在尝试从 javascript 调用我的 BHO 方法。问题与以下帖子中所述相同:
- 从 Javascript 函数调用 BHO
- http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/91d4076e-4795-4d9e-9b07-5b9c9eca62fb/
- 从运行在 Web 浏览器控件中的 JavaScript 脚本调用 C++ 函数
第三个链接是另一篇谈论它的SO帖子,但我不明白需求和代码。此外,共享的工作示例在带有 ie 8 的 windows 7 和带有 ie 7 的 windows vista 上不断崩溃。
如果有帮助,我的 BHO 是使用 ATL 用 C++ 编写的。
我试过的:
我写了一个非常基本的 BHO 并尝试了Igor Tandetnik提到的方法。没有产生异常,但是当我在 IE 中打开以下 html 文件时,它会显示object undefined。
问题:
- 请澄清是否可以从 javascript 公开和调用 BHO 方法,或者我是否必须使用 activex 公开它(如[2]中的jeffdav回答)?如果是,那么该怎么做。
- 基本上我想扩展
window.external
上面链接[2]中显示的方式使用var x = new ActiveXObject("MySampleATL.MyClass");
; 两个调用约定是相同还是不同?
笔记:
- SO上有一个相关的帖子,暗示可以通过将其插入
[id(1), helpstring("method DoSomething")] HRESULT DoSomething();
BHO IDL文件中。我不确定它是如何完成的,也无法通过谷歌找到任何支持资源。 - 我知道这篇文章call-into-your-bho-from-a-client-script,但没有尝试过,因为它正在使用 ActiveX 解决问题。
- 我避免使用 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.
c# - 如何创建 Internet Explorer 插件?
如何使用 .net 创建 Internet Explorer 插件。我所需要的只是右键单击上下文菜单下的一个菜单。
.net 是必须的。
编辑:我想要做的是向 IE 添加一个上下文菜单。