程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 控件-c#使用iframe嵌套問題

控件-c#使用iframe嵌套問題

編輯:編程綜合問答
c#使用iframe嵌套問題

小弟想用WebBrowser控件來操作QQ空間的留言板,完成自動留言並點擊提交按鈕,目前提交按鈕功能已經實現,但是往留言板中寫文字還沒有實現,哪位大神幫幫忙,我的代碼如下

if (!webBrowser1.IsBusy)//判斷有沒有加載新的文檔
{
HtmlElement html_input1 = webBrowser1.Document.Window.Frames["tgb"].Document.All["veditor1_Iframe"];
html_input1.SetAttribute("value", "google");//這步不好使
HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//獲取到iframe id為tgb下面的button
searchButton.InvokeMember("click");//這步好使

我發現veditor1_Iframe也是一個iframe的id,也就是iframe“tgb”裡面又有一個iframe“veditro1_Iframe”,並且裡面沒有找到輸入框的id,請問這時怎麼去尋找這個輸入框並給它賦值呢??

最佳回答:


使用下面的代碼
我在網上隨便搜了一個qq空間的地址(http://410159784.qzone.qq.com/),這個空間的iframe的id和你的不一樣(後面注釋掉的那兩個id),所以我id定義成了變量,方便修改。另外把操作放在了try裡面,這樣就算沒有找到也不會導致程序奔潰。你可以自己修改一下。
還有需要注意的是webBrowser1.IsBusy這個判斷可能不能准確判斷嵌套的iframe頁面是否加載完成。

            if (!webBrowser1.IsBusy)//判斷有沒有加載新的文檔
            {
                string frameBlog = "tgb";//"tblog";
                string frameEdit = "veditor1_Iframe";
                string btnPost = "btnPostMsg";//"submitCommentBtn";

                try {
                    HtmlElement html_input1 = webBrowser1.Document.Window.Frames[frameBlog].Document.Window.Frames[frameEdit].Document.Body;
                    if (html_input1 != null) {
                        html_input1.InnerHtml = "Google";
                        HtmlElement searchButton = webBrowser1.Document.Window.Frames[frameBlog].Document.GetElementById(btnPost);
                        if (searchButton != null) {
                            searchButton.InvokeMember("click");
                        }
                    }

                } catch (Exception) {
                    //throw;
                }
            }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved