【问题标题】:How to add event click to a div in web browser C#如何在 Web 浏览器 C# 中将事件单击添加到 div
【发布时间】:2018-07-14 20:54:41
【问题描述】:

我想在 web 浏览器控件中为一个 div 设置一个点击事件,那个 div 没有 id,所以,我按标题搜索它.. 并像我使用按钮控制一样设置点击,但它不起作用。 这是我的代码:

private void button3_Click(object sender, EventArgs e)
{
    var links = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement link in links)
    {
        if (link.GetAttribute("title").Equals("div_name"))
        {
            link.InvokeMember("click");
            return;
        }
    }
}

有什么想法吗? 提前致谢!

【问题讨论】:

    标签: c# .net winforms webbrowser-control


    【解决方案1】:

    你可以试试这个。

    在这种情况下,我修改了现有解决方案。添加一个脚本来做到这一点:

    private void button3_Click(object sender, EventArgs e)
    {
        var links = webBrowser1.Document.GetElementsByTagName("div");
        foreach (HtmlElement link in links)
        {
            if (link.GetAttribute("title").Equals("div_name"))
            {
                HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
                HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
                IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
                element.text = "function clickTitle() { document.getElementById('" + link.GetAttribute("id") + "').click(); }";
                head.AppendChild(scriptEl);
                webBrowser1.Document.InvokeScript("clickTitle");
            }
        }
    }
    

    它添加了一个javascript脚本来点击它,然后点击它。它假定元素有一个 id。

    【讨论】:

    • 它不起作用,因为我想做点击,而不是用户点击时具体的东西..希望你理解我
    • 我用一种非常不同的方法更新...误解了你之前所说的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2015-02-28
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多