标签: mshtml

无法设置IHTMLEventObj2 :: fromElement

我正在尝试在Internet Explorer扩展中生成合成Javascript事件,并且我无法获取fromElement属性.这是我的代码的摘录:

MsHtml.IHTMLDocument4 doc4 = ... // the document object
Object o = null;
MsHtml.IHTMLEventObj2 eObj = 
    (MsHtml.IHTMLEventObj2)doc4.CreateEventObject(ref o);

// string that specifies the from element, e.g. "document.getElementById('id1')":
string locator = ... 
object from = doc4.Script.GetType().InvokeMember("eval", 
                                                 BindingFlags.InvokeMethod, 
                                                 null, 
                                                 doc4.Script, 
                                                 new object[] { locator });

// from now holds a ref to an object that implements the IHTMLElement interface
eObj.fromElement = from;
IHTMLElement el = eObj.fromElement;
// el == null
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?eObj.fromElement应该等于from,但它似乎没有设置.

javascript c# internet-explorer mshtml

33
推荐指数
1
解决办法
1330
查看次数

Windows 10上的MSHTML DLL

我有一个使用Smith Html编辑器的C#解决方案(我正在开发使用它的主项目,所以我对这个库不太了解),它引用了MSHTML.这工作正常,直到我升级到Windows 10,它再也找不到MSHTML了.我可以直接引用GAC文件夹上的DLL,它会停止抱怨并因此构建,但是它会得到一些与编辑器无法实例化相关的运行时错误.

经过一番研究后发现MSHTML已逐步退出Windows 10,因为它现在使用的是EdgeHTML.有谁知道我怎么能绕过这个?

该解决方案仍适用于Windows 7.

c# wpf mshtml windows-10 microsoft-edge

31
推荐指数
4
解决办法
2万
查看次数

阻止.NET WebBrowser控件中的对话框

我有一个.NET 2.0 WebBrowser控件,用于导航一些没有用户交互的页面(不要问......长篇故事).由于此应用程序的用户性质较少,我已将WebBrowser控件的ScriptErrorsSuppressed属性设置为true,VS 2005状态中包含的文档将"隐藏其源自底层ActiveX控件的所有对话框,不只是脚本错误." 但是,MSDN文章没有提到这一点.我已经设法取消了NewWindow事件,这会阻止弹出窗口,因此需要处理.

任何人都有使用其中一个并成功阻止所有对话框,脚本错误等的经验?

编辑

这不是IE的独立实例,而是生成在Windows窗体应用程序上的WebBrowser控件的实例.任何人都有使用此控件或底层AxSHDocVW的经验吗?

再次编辑

对不起,我忘了提这个...我试图阻止一个JavaScript警报(),只需一个OK按钮.也许我可以转换成IHTMLDocument2对象并以这种方式访问​​脚本,我已经使用过MSHTML了,有人都知道吗?

.net c# activex mshtml winforms

19
推荐指数
4
解决办法
4万
查看次数

无法加载文件或程序集'Microsoft.mshtml ...强名称验证失败

我制作了一个WPF/C#程序,我使用互联网控件进行所见即所得的HTML编辑.

它是一个常规的可执行程序.

它适用于大多数计算机,但有些计算机给我以下错误.

无法加载文件或程序集'Microsoft.mshtml,Version = 7.0.3300.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.强名称验证失败.

"Microsoft.mshtml.dll"文件随程序一起分发.它与exe文件位于同一文件夹中的所有其他必需的dll.


这是输出 Fuslogvw

*** Assembly Binder Log Entry  (1/14/2010 @ 6:36:51 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable  C:\Documents and Settings\office\Desktop\Database\DATABASE.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = CAMPUSREMOTE\office
LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///C:/Documents and Settings/office/Desktop/Database/
LOG: Initial …
Run Code Online (Sandbox Code Playgroud)

c# interop mshtml

18
推荐指数
2
解决办法
5万
查看次数

使用mshtml不起作用

我有ac#app,我尝试过使用一些mshtml元素.但我有一个问题.该using mshtml;命名空间给了我一个错误的Visual Studio 2012.

这是我的源代码,

namespace Tagger
{

    using mshtml;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Runtime.CompilerServices;
    using System.Text;

    public class HTMLForm
    {
        private string _action = "";
        private string _method = "";
        public Hashtable Inputs = new Hashtable();

        public HTMLForm(IHTMLFormElement element)
        {
            this._method = element.method;
            this._action = element.action;
            foreach (IHTMLInputElement element2 in (IHTMLElementCollection) element.tags("input"))
            {
                try
                {
                    string name = element2.name;
                    string str2 = element2.value;
                    if (name == null)
                    {
                        name = element2.type;
                    }
                    this.Inputs.Add(name, str2); …
Run Code Online (Sandbox Code Playgroud)

c# mshtml

17
推荐指数
2
解决办法
3万
查看次数

如何在不使用Web浏览器的情况下呈现HTML元素?

有没有办法在不使用任何Web浏览器控件的情况下在画布上绘制特定的HTML元素内容?

使用此代码,我将元素呈现给窗体的画布(仅作为示例).
它虽然有效,但这段代码不是一个好习惯 - 见下文,为什么......

uses
  SHDocVw, MSHTML;

procedure TForm1.Button1Click(Sender: TObject);
var
  WebBrowser: TWebBrowser;
  HTMLElement: IHTMLElement;
  HTMLRenderer: IHTMLElementRender;
begin
  WebBrowser := TWebBrowser.Create(nil);
  try
    WebBrowser.ParentWindow := Application.Handle;
    WebBrowser.Navigate('https://stackoverflow.com/questions/2975586/good-delphi-blogs');

    while WebBrowser.ReadyState < READYSTATE_COMPLETE do
      Application.ProcessMessages;

    HTMLElement := (WebBrowser.Document as IHTMLDocument3).getElementById('question');
    HTMLRenderer := (HTMLElement as IHTMLElementRender);
    HTMLRenderer.DrawToDC(Canvas.Handle);

  finally
    HTMLElement := nil;
    HTMLRenderer := nil;
    WebBrowser.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

这很糟糕,因为

有没有一种干净的方法来解决这个使用MSHTML?

html delphi mshtml ihtmldocument

15
推荐指数
1
解决办法
1万
查看次数

HTML - 如何知道何时加载所有帧?

我正在使用.NET WebBrowser控件.我怎么知道网页何时满载?

我想知道浏览器什么时候不提取任何数据.(当IE在状态栏中写'完成'时......).

笔记:

  • 对于包含多个框架的网站,DocumentComplete/NavigateComplete事件可能会多次发生.
  • 浏览器就绪状态也没有解决问题.
  • 我已经尝试检查帧集合中的帧数,然后计算我获得DocumentComplete事件的次数,但这也不起作用.
  • this.WebBrowser.IsBusy也不起作用.在文档完成处理程序中检查它时总是"假".

html c# browser mshtml

11
推荐指数
1
解决办法
2万
查看次数

为什么在DOM更改后IWebBrowser2不刷新?

A有一个Web浏览器嵌入在我的Win32 C++应用程序的对话框中(没有MFC,ATL等),我最初从包含一些HTML代码的字符串设置文档的内容.此HTML正确呈现.当"文档完成"事件发生时,我操纵DOM,例如通过将文本节点附加到BODY元素.

问题是虽然调用IHTMLElement::get_outerHTMLBODY元素的界面表明文本节点存在,但浏览器内容在对话框中显示不变.

我试过调用两个IWebBrowser2::Refresh::InvalidateRect/ ::UpdateWindow,但都没有帮助.

有任何想法吗?如果需要,我可以发布部分代码.

还有,有谁知道

  • 原则上,在修改DOM之后是否需要以某种方式触发刷新(或者它应该是自动的)
  • IWebBrowser2::RefreshHTML文档是从字符串加载而不是URL加载时是否有意义

仍希望得到这个答案......任何人?

c++ dom mshtml iwebbrowser2

11
推荐指数
1
解决办法
684
查看次数

我们如何在VBA中使用MSHTML?

我在MSDN中看到了很多关于如何在VS中使用MSHTML的例子.有谁知道我们是否以及如何使用MSHTML和VBA来打开网页?

谢谢.

excel vba mshtml excel-vba

7
推荐指数
1
解决办法
2万
查看次数

为什么Microsoft有IHTMLDocument,IHTMLDocument2,...,IHTMLDocument8?

接口名称末尾的数字是什么意思?我看到IHTMLDocument3-7没有成员(参见#5的示例),并且8有与手势相关的成员.该数字是从Windows版本派生的吗?

c++ internet-explorer mshtml

7
推荐指数
1
解决办法
6765
查看次数