如何接管CHtmlView的脚本引擎接口?

lgd_hit 2013-05-01 04:38:00
我想自己实现 IActiveScript IActiveScriptSite等接口,然后在自己的程序里,基于CHtmlView的程序里,把默认的脚本引擎接口等替换成我的,以此来控制脚本的执行等,该如何实现?
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgd_hit 2013-05-10
  • 打赏
  • 举报
回复
看来没人能解决了
redui 2013-05-07
  • 打赏
  • 举报
回复
引用 7 楼 lgd_hit 的回复:
我接管脚本运行的出发点是想控制一些JS函数的执行,例如blur函数,它会使窗体Z-ORDER位置发生变化,还有网页关闭事件等,都想在JS接管的时候直接拦截和处理,因此想从IActiveScript等接口处理
你这个需求根本不需要用这种接管整个脚本引擎的方式解决,直接用JS代码就能搞定。自己保存原始的blur方法;实现一个替代的blur方法替换掉原始方法。
e.oldBlur = e.blur;
e.blur = function(){
  // do something or nothing, or call original method, such as: e.oldBlur();
};
别告诉我这个方法太复杂。
lgd_hit 2013-05-07
  • 打赏
  • 举报
回复
替换的方法有时候会不行,我目前就是采用这种方法,我再OnNavigateComplete和OnDocumentComplete里都加了替换函数,大部分时候是可以的,但是有时候也会不行,因为有时候会没等替换呢就已经执行完了,因此我考虑如何在更早的时机替换或者接管JS脚本对blur的执行
lgd_hit 2013-05-06
  • 打赏
  • 举报
回复
我接管脚本运行的出发点是想控制一些JS函数的执行,例如blur函数,它会使窗体Z-ORDER位置发生变化,还有网页关闭事件等,都想在JS接管的时候直接拦截和处理,因此想从IActiveScript等接口处理
fishion 2013-05-05
  • 打赏
  • 举报
回复
网上的一原话"IE用的是微软的脚本引擎规范,所以我把V8改造成符合微软规范的版本,然后在运行时替换jscript引擎。测试结果:通过。总体运行性能:不如原版,尤其在DOM访问速度上。"
lgd_hit 2013-05-05
  • 打赏
  • 举报
回复
有知道的朋友请与我沟通!
lgd_hit 2013-05-02
  • 打赏
  • 举报
回复
楼上的朋友,能否指点一二,你说的正是我想要的,我是开发浏览器的,希望跟你能有沟通和交流的机会,我QQ:50479329
redui 2013-05-02
  • 打赏
  • 举报
回复
这个技术是一层很高大的纸幕,虽然很薄,但就是看不见另一面。但是纸毕竟是薄的,只要选择了恰当的技术,一根针就能捅破它。当年我用V8改造JS引擎的时候,就成功地让IE用了我的引擎而不是系统自带的JSCRIPT。抱歉的是,这个技术我没有公开,只私下送给了几个圈内的朋友。
wumn29 2013-05-02
  • 打赏
  • 举报
回复
你应该是想让CHtmlView打开你本地的网页吧, 然后再这个网页里面执行你自己的js脚本?
lgd_hit 2013-05-02
  • 打赏
  • 举报
回复
自己UP一下

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧