[疑难] 如何在IE中插入用户脚本

sleets 2007-06-25
在Opera浏览器中可以写一些javascript脚本应用到特定网站中,在Firefox里也有插件实现这个功能。
在IE里有一些插件也可以(gm4ie),但是它们运行的效果不是以网页的身份运行,我希望做到专门为某网业写的脚本就象这个网页自己带的一样,我自己猜测可以利用页面下载后把脚本插入到页面的源代码里就可以了,这样就是以完全的页面身份运行了。

我知道D语言可以把IE嵌入到程序窗口里,但是如何实现这样的功能,各位达人提供个思路。


sleets 2007-06-28
已经编译了embed_ie.d 和 core32里的ie.d,
目前不知道如何监视ie的事件,或者叫消息吧。
在delphi里插入脚本我用

procedure TForm1.XWINDocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  win: IHTMLDocument2;
  str:string;
begin
  //doc := Win.Document as IHTMLDocument2;
  win := IHTMLDocument2(XWin.Document);
  //str:='<script type="text/javascript">alert(123)</script>'     ;
  win.ParentWindow.execScript('alert(document.getElementsByTagName("a").length)','javascript');
end;


监视事件
procedure TForm1.XWINBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
  win: IHTMLDocument2;
  str:string;
begin
  //win := IHTMLDocument2(XWin.Document);
  showmessage('xxx');
end;
我知道delphi很容易实现,但是用它写逻辑的东西我感觉很别扭,希望那位老大帮我看下这2个东西怎么在D里来做,提供个思路就感激不尽了。大家都别光看不说,砖头瓦渣都抛出来吧。
oldrev 2007-06-28
楼主动机不纯

sleets 2007-06-28
什么意思?
sleets 2007-06-28
晕啊,偶主要是搞php的,没学过c/c++. 搞这些太痛苦了。
这两天编译了qiezi发的 embed_ie.d , core32里的ie.d。也用entice弄了几个窗口, 就是不知道如何去掉它的控制台,另外也不知道如何嵌入axtivex对象或者embed那样的ie,更不知道如何监视事件了。
主要是没学过c/c++, 不知道从那里入手,那位大哥给点提示我自己去查。
sleets 2007-06-30
看了dfl, 里面的事件感觉很不错。 它的作者说用iwebbrows.setparent( dfl.form.hander)可以把浏览器嵌入.于是试验 core32里的ie.d,但是ie.d编译出来在我机器上运行直接就到finally了。
又看了qiezi大哥的embed_ie.d, 但是实在是不知道如何把它改造成类让dfl创建实例。现在有问题1:
enum {
    WEBPAGE_GOBACK,
    WEBPAGE_GOFORWARD,
    WEBPAGE_GOHOME,
    WEBPAGE_SEARCH,
    WEBPAGE_REFRESH,
    WEBPAGE_STOP
}
这个定义是从那里来的,应该还有其他没加入的,我应该去那里找资料?我知道是从c源文件转换的,但是这个文件在那里下或者在那个软件包里我不知道。
问题2,WindowProc里用到的WM_SIZE,WM_CREATE等,我找到是在std.c.windows.windows里定义的,这个是否也有没定义的部分,有的话该参考什么文件来补全它。

问题3, d里的 extern(pascal)可以用来调用 delphi写的dll文件吗?
sleets 2007-06-30
delphi我也是才安装没几天,学了一晚上就能做一些窗口了,但是我特别喜欢D的语法希望能D来做,借此也提高下自己的水平,希望前辈达人有空的时候指点一二。
以前用php做网站,现在感觉很累,实际工作中往往是客户主导,而这些客户的观念实在是让人无奈。后来在工作中看了很多ajax库,特别喜欢mootools,也因此迷上了闭包和匿名函数。后来看到了D语言介绍,由于早就想学习其他更有用的语言所以就投入了D的怀抱。现在感觉是文档和库太缺乏,社区也显的有些冷清。真遗憾这么好的语言是这样的状况。
sleets 2007-06-30
经过彻夜不眠的查找,终于找win32api的c头文件在 http://jaist.dl.sourceforge.net/sourceforge/mingw/w32api-3.9-src.tar.gz里。
其中与ie有关的文件主要有: exdisp.h,mshtml.h。另外阅读了mfc里的消息机制和窗口创建过程。现在去看如何extern这些api到D里。
sleets 2007-06-30
发现 core32.win32.com.EXDISP和core32.win32.com.MSHTMHST 。
sleets 2007-06-30
svn co http://svn.dsource.org/projects/bindings/trunk/ bindin                               gs
Global site tag (gtag.js) - Google Analytics