您的位置:首页 > 其它

浏览器扩展系列————给MSTHML添加内置脚本对象【包括自定义事件】

2009-03-02 13:35 447 查看
使用场合:

在程序中使用WebBrowser或相关的控件如:axWebBrowser等。打开本地的html文件时,可以在html的脚本中使用自己在.net中定义的类,实现与Internet
Explorer server的互操作。此外也可以在充分利用html在设计界面方面高效,简单的同时,也可以实现一些复杂的特性。

实现:

[ComVisibleAttribute(true)]

public class ScriptObject

{

private Window window;

private ScriptEvent onClickEvent;

public ScriptObject(Window window)

{

this.window = window;

onClickEvent = new ScriptEvent();

}

public string WindowTitle

{

get { return window.Title; }

}

public double Add2(double num1, double num2)

{

return num1 + num2;

}

public object onClick

{

get { return onClickEvent.EventObect; }

set { onClickEvent.EventObect = value; }

}

public void OnClick()

{

onClickEvent.Execute();

}

onClick属性对应与Javascript脚本中ScriptObject类的onClick事件。在脚本中可以把一个function实例赋给此类的onClick属性。

因为在javascript中事件并不等同于.net中的事件,具体来说就是javascript中不允许绑定多个事件,所以可以一个事件实现为一个函数对象,通过用com viewer查看System32下的Jscript.dll可以看到,此对象对应于其中的FunctionInstance接口,所以在此就使用了反射构造了这个接口,然后调用其真正的脚本函数。

具体代码下载http://files.cnblogs.com/chinese-zmm/ScriptObjectDemo.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐