zoukankan      html  css  js  c++  java
  • 在webbrowser中操作js弹出的对话框 以及触发其它事件····

    //先在工程中添加一个mshtml的引用
    //替换内核函数

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using mshtml;

    namespace WindowsApplication16
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                webBrowser1.Navigate(@"c:\temp\temp.htm");
            }

            private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {
                IHTMLDocument2 vDocument = (IHTMLDocument2)webBrowser1.Document.DomDocument;
                vDocument.parentWindow.execScript(
                    "function alert(str){if(str=='zswang')confirm(str);}", "javaScript");
            }
        }
    }

    ====================================
    如何自动调用WebBrowser控件里DOC的类似BUTTON或者<a>标签的点击事件?


    this.webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);

     void Document_Click(object sender, HtmlElementEventArgs e)
            {
               
                if (ReadOnly)
                {
                    if (webBrowser1.Document.ActiveElement.DomElement is HtmlAnchorElement)
                    {
                        HtmlAnchorElement em = (HtmlAnchorElement)webBrowser1.Document.ActiveElement.DomElement;
                        string href = em.href;
                        .......                   
                    }
                }
            }



    或者:


    HtmlDocument hDoc = WebBrowser.Document;
    HtmlElement he对象 = hDoc.GetElementById("对象ID");
    he对象.InvokeMember("click");

    当然也可以用hDoc.GetElementsByTagName("TagName")去取对象

    ========================================
    //C#2005 调试成功

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        IHTMLDocument2 vDocument = (IHTMLDocument2)webBrowser1.Document.DomDocument;
        foreach (IHTMLElement vElement in vDocument.all)
        {
            if (vElement.tagName.ToUpper() == "FRAME")
            {
                IHTMLFrameBase2 vFrameBase2 = vElement as IHTMLFrameBase2;
                vFrameBase2.contentWindow.execScript(
                    "function alert(str){confirm('[' + str + ']');}", "javaScript");
            }
        }
    }



    =========================================
    做浏览器,如何获取打开页面中特定的link,并点击它.

    其实比较简单
    mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)this.axWeb_Browser.Document;
    mshtml.IHTMLElementCollection myLiks = doc.links;
    string tmp_ads_url = "xxxxxxx";
    foreach (HTMLAnchorElementClass el in myLiks)
    {
        if (el.href.ToString().ToLower() == tmp_ads_url)
        {
            el.click();
            break;
        }
    }



    好了.点当前link不以新窗口打开的问题也解决了.方法也很简单.只需要在我实现查找指定link的代码中加个
    el.target = "_self";
    加到什么位置就不用我说了吧.呵呵.

  • 相关阅读:
    转 PHP in_array() 函数
    转 PHP Cookies
    华硕笔记本怎样调整屏幕亮度
    转 Oracle 12c: Managing Resources
    转 SQLPLUS中SQL换行执行
    转 php中$_request与$_post、$_get的区别
    TDB 12c : Transportable Database
    oracle (DBaaS) 服务介绍
    domain admin域管理员
    转 【TTS】AIX平台数据库迁移到Linux--基于RMAN(真实环境)
  • 原文地址:https://www.cnblogs.com/Fooo/p/809180.html
Copyright © 2011-2022 走看看