轉自:http://www.verydemo.com/demo_c98_i7826.html
以下Demo演示如何在activex中與前臺的js進行交互:
activex中:
- private mshtml.HTMLWindow2Class window = null; //定義用於操作<strong>前臺</strong>JS的對象
- public void SetPage(mshtml.HTMLWindow2Class jsFile) //此方法需要在<strong>前臺</strong>JS載入完成後調用
- {
- window = jsFile; //賦值完成之後,window就是一個可以在後臺操作的頁面對象了
- }
- private void button2_Click(object sender, EventArgs e) //這是activex控件裏面的一個button
- {
- string script = string.Format("testjs('{0}')",DateTime.Now.ToLongTimeString()); //測試調用JS的函數輸出當前時間
- window.execScript(script, "JavaScript"); //調用函數,第二個參數爲腳本名稱,這裏填寫“JavaScript”
- }
前臺:
- <script type="text/javascript">
- function testjs(obj) { //這是後臺要調用的函數
- alert(obj);
- }
- function setpage() {
- myocx.SetPage(this); //將當前的頁面對象傳遞給後臺,即調用activex控件的SetPage方法
- }
- </script>
- <body onload="setpage()"> //onload後需要傳遞對象給後臺
- <object id="myocx" classid="clsid:218849AF-1B2C-457B-ACD5-B42AC8D17EB7" height="200px" width="300px"> //activex控件
- </object>
- </body>
測試結果:
在控件的button上單擊後,出現以下messagebox