2012-02-21 13 views

答えて

2

これは、DocumentCompletedイベントハンドラによってトリガされます。私は、次のコードを使用

How to execute custom JavaScript in WebBrowser control?

これはJavaスクリプトインジェクションを支援するための有用なリンクでした。

private void CollapseExpandDocument(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     if (sender == null) 
     { 
      return; 
     } 

     try 
     { 
      WebBrowser me = (WebBrowser) sender; 
      HtmlElement head = me.Document.GetElementsByTagName("head")[0]; 
      HtmlElement scriptEl = me.Document.CreateElement("script"); 
      IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; 
      string func = @" 
       function collapseDoc() 
       { 
        var className = 'b'; 
        var hasClassName = new RegExp('(?:^|\\s)' + className + '(?:$|\\s)'); 
        var allElements = document.getElementsByTagName('a'); 
        var element; 
        for (var i = 0; (element = allElements[i]) != null; i++) 
        { 
         var elementClass = element.className; 
         if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) 
          ch(element.parentElement.parentElement); 
        } 
       }"; 
      element.text = func; 
      head.AppendChild(scriptEl); 
      me.Document.InvokeScript("collapseDoc"); 
     } 
     catch 
     { 
      //not interested in knowing if the collapse/expand failed... 
     } 
    } 
関連する問題