浏览器扩展系列————给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();
}
具体代码下载http://files.cnblogs.com/chinese-zmm/ScriptObjectDemo.rar。
在程序中使用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。
相关文章推荐
- 浏览器扩展系列————给MSTHML添加内置脚本对象【包括自定义事件】
- 样式表参数和扩展对象的 XsltArgumentList(利用程序编码添加脚本 != 在CDATA下添加)
- 样式表参数和扩展对象的 XsltArgumentList(利用程序编码添加脚本 != 在CDATA下添加)
- 地磅称量系统之(53)在封装对象的类库中实现包括IDataErrorInfo接口提供的所有方法和并且扩展对异常具有添加和删除功能的基本业务对象基类
- Unity 3D 动态创建对象,并渲染贴图,动态添加删除脚本
- 框架(yii和thinkphp)中实例化php内置或者扩展中的对象问题
- 跟我一起写Windows JS脚本(二):内置对象与任意COM组件
- JSP脚本的9个内置对象(二)——config对象
- [js高手之路] es6系列教程 - 对象功能扩展详解
- 前端开发之旅-JavaScript篇--续 (内置对象、浏览器对象、DOM对象)
- [原]Java web学习系列之 Java web开发中的jsp九种内置对象
- 给您的网站或主页添加自己的标识图标(包括浏览器地址栏的图标)
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- HTTP 错误 404.3 - Not Found由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
- 【脚本语言系列】关于Python基础知识对象变动,你知道的事
- HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序
- Chrome浏览器扩展开发系列之十五:跨域访问的XMLHttpRequest对象
- Firefox扩展IE Tab Plus内置功能导致浏览所有网页加载superfish.com脚本
- Flex快速入门系列之二:FlashBuilder创建项目以及远程JAVA对象访问(包括spring)篇
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加