1

我在这里遇到了这样的问题:

我在 webbrowser 控件中有一个网页。该页面使用 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 回答