WebBrowser中調用載入頁面的Javascript方法

來源:互聯網
上載者:User
using AxSHDocVw;
using Microsoft.VisualBasic;
using mshtml;

AxWebBrowser awb = (AxWebBrowser)page.Controls[0];
SHDocVw.IWebBrowser2 iwb = (SHDocVw.IWebBrowser2)awb.Application;
object app = awb.Application;
string name = Information.TypeName(app);

HTMLDocumentClass doc = (HTMLDocumentClass)awb.Document;
if (doc != null)
{
    HTMLBodyClass body = (HTMLBodyClass)doc.getElementsByTagName("body").item(null, 0);
    HTMLScriptElementClass script = (HTMLScriptElementClass)doc.createElement("script");
    script.setAttribute("type", "text/javascript", 0);
    script.text = "closeControl();";
    body.appendChild((IHTMLDOMNode)script);
    doc.close();
}
awb.Dispose();
awb = null;

tab.TabPages.Remove(page);

page.Dispose();
GC.Collect();

#import "C:\WINDOWS\system32\mshtml.tlb"

/* 動態修改網頁中的內容
IHTMLDocument2* pHTMLFocument2;
LPDISPATCH lpDispatch;
lpDispatch = m_wb.get_Document();
if(lpDispatch)
{
    HRESULT hr;
    hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pHTMLFocument2);
    lpDispatch->Release();
    IHTMLElement* pBody;
    hr = pHTMLFocument2->get_body(&pBody);
    UpdateData(TRUE);
    BSTR bstr = L"hxh";
    // pBody->get_innerHTML(bstr);
    pBody->put_innerHTML(bstr);  
    SysFreeString(bstr);
    pBody->Release();
} */

// 動態執行網頁中的方法
MSHTML::IHTMLDocument2Ptr spDoc(m_wb.get_Document());
if (spDoc)
{
    IDispatchPtr spDisp(spDoc->GetScript());
    if (spDisp)
    {
        OLECHAR FAR* szMember = L"closeControl";
        DISPID dispid;
        HRESULT hr = spDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
        if (SUCCEEDED(hr))
        {
            COleVariant vtResult;
            static BYTE parms[] = VTS_BSTR;
            COleDispatchDriver dispDriver(spDisp, FALSE);
            dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT, (void*)&vtResult, parms, "");
        }
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.