1

私はここでそのような問題を抱えています:

webbrowserコントロールにWebページがあります。そのページはjavascriptを使用しており、多数のイベント(つまり、クリック)をサブスクライブしていました。

必要なアルゴリズムは次のとおりです。

  1. webbrowserコンポーネントにページをロードする
  2. コードのC#部分で、JavaScriptイベントの購読を解除するようにページを強制します

とにかくそれをすることはありますか?

前もって感謝します。

4

1 に答える 1

1

1.メソッド: javascriptでサブスクリプション解除関数を作成し、それをc#側から呼び出します。

ページコード内:

<script type="text/javascript">
    // assign the event to the element
   document.getElementById("myElem").onclick = function(){
       //your code here
   }

   // clear the event
   function clearEvent(){
       document.getElementById("myElem").onclick = function(){
          return false;
       }
   }
</script>

C#側:

IHTMLDocument2 doc = (IHTMLDocument2)IE.Document;
IHTMLWindow2 parentWindow = doc.parentWindow;
if (parentWindow != null)
    parentWindow.execScript("clearEvent();", "javascript");
}

2.メソッド:サブスクリプション解除コードをc#から直接呼び出します

IHTMLDocument2 doc = (IHTMLDocument2)IE.Document;
IHTMLWindow2 parentWindow = doc.parentWindow;
if (parentWindow != null)
    parentWindow.execScript("document.getElementById('myElem').onclick=function(){return false;}", "javascript");
}
于 2012-05-27T16:00:17.107 に答える