私はここでそのような問題を抱えています:
webbrowserコントロールにWebページがあります。そのページはjavascriptを使用しており、多数のイベント(つまり、クリック)をサブスクライブしていました。
必要なアルゴリズムは次のとおりです。
- webbrowserコンポーネントにページをロードする
- コードのC#部分で、JavaScriptイベントの購読を解除するようにページを強制します
とにかくそれをすることはありますか?
前もって感謝します。
私はここでそのような問題を抱えています:
webbrowserコントロールにWebページがあります。そのページはjavascriptを使用しており、多数のイベント(つまり、クリック)をサブスクライブしていました。
必要なアルゴリズムは次のとおりです。
とにかくそれをすることはありますか?
前もって感謝します。
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");
}