在各位老师的帮助下,自己弄的简易浏览器,总算大体满意!在做这个浏览器过程,学了不少东西:
首先对于浏览器,最关键是处理新开窗口浏览问题,因为本浏览器不是默认浏览器(也不想变成默认),所以当要新开窗口时,就会跳出本浏览器,调用外面的默认浏览器。经过一轮学习,最后处理方法是:
添加一个中转的 WebBrowser ,在主 WebBrowser 的 NewWindow2和NewWindow3 里写如下代码:
ppdisp=THISFORM.WebBrowser2
这样就把要新开的窗口内容传递给中转 WebBrowser ,然后在这个中转WebBrowser 的 BeforeNavigate2 里写代码:
THISFORM.WebBrowser1.Navigate(URL) &&这里可以做网址拦截了!
CANCEL=.T.
这样就把网址回传给主 WebBrowser 了!
不过发现还是有新窗口跑出本浏览器,去调用默认浏览器,这里就没法了,知识有限公司,而这情况很小!处理这些漏网之鱼,自己想到的办法有三:
一:使用自己安装的HISP 主动防御工具,把她限制(我是这样做的)。
二:把自己的浏览器变成默认的。
三:用一个相同名字的假程序去替换默认浏览器程序,这样可以起到和第一方法的效果。当然这个假程序也可以令她,接受网址传给自己的浏览器。
另外在学习过程里,还更新了以前的知识:
以前处理一些顺序的对象的调用如:LABEL1,LABEL2,LABEL3..... 的调用方法是:
A=1
OP='THISFORM.LABEL'+ALLT(STR(A))+'.Caption'
&OP='VFP'
现在改为:
A=1
OP='LABEL'+ALLT(STR(A))
THISFORM.&OP..CAPTION='VFP'
这个方法可以处理以前不能做到的事情!
在调用收藏夹里的网址,学习到的知识是:
B=UPPER(FILETOSTR('D:/Favorites/链接/文夹/CSDN.URL')
D=STREXTRACT(B,'URL=',CHR(13))
这个D 就是网址了!
估计用新的网址替换这个D 然后用 STRTOFILE 可以将新网址放到收藏夹了!
还有很多新学到的东西,一时总结不了,就写到这里!