首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用getAttribute时返回System.__ComObject

使用getAttribute时返回System.__ComObject
EN

Stack Overflow用户
提问于 2012-03-15 02:25:33
回答 3查看 3.2K关注 0票数 1

我正在运行这段代码:

代码语言:javascript
复制
HtmlElement.GetAttribute("onClick")

尝试访问该元素的onClick属性,但返回的结果是System.__ComObject。我不知道为什么会发生这种情况,所有其他GetAttribute调用都会返回实际的字符串。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-10-02 17:37:44

首先,您可以尝试确定控件的类型;然后将对象强制转换为此类型。使用此方法可以访问元素的属性。

例如,如果您的对象是包含"onclick“方法的"div”,则必须将com对象转换为mshtml.HTMLDivElement (必须将程序集"mshtml.dll“添加到项目中才能使用mshtml类);然后可以在outerHTML属性中查找"onclick”属性。

代码语言:javascript
复制
    if (doc.GetElementById("id-of-div").GetAttribute("onclick").Equals("System.__ComObject"))
    {
            mshtml.HTMLDivElement docCOM = (mshtml.HTMLDivElement)doc.GetElementById("id-of-div").DomElement;

            string onClickStr = docCOM.outerHTML.[some string or regex operations here];
    }

票数 0
EN

Stack Overflow用户

发布于 2012-03-17 02:22:37

示例代码

代码语言:javascript
复制
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    WebBrowser1.Navigate("http://stackoverflow.com/questions/9707869/system-comobject-is-returned-when-i-use-getattribute")
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim a As HtmlElement = WebBrowser1.Document.GetElementById("portalLink").FirstChild
    MsgBox(a.DomElement.attributes("onclick").value.ToString)
End Sub
票数 -1
EN

Stack Overflow用户

发布于 2021-11-30 06:31:00

您需要使用以下代码:

代码语言:javascript
复制
theElementCollection = WebBrowser1.Document.GetElementsByTagName("A")

For Each curElement As HtmlElement In theElementCollection
    MsgBox(curElement.DomElement.attributes("onclick").value.ToString)
Next
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9707869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档