我写了个BHO  检测网页内容  代码如下:procedure DoBeforeNavigate2(const pDisp:IDispatch;var URL:OleVariant;
  var Flags:OleVariant;var TargetFrameName:OleVariant;var PostData:OleVariant;
  var Headers:OleVariant;var Cancel:WordBool);
var
  i:Integer;
begin
    if (URL='')  or (URL='http://www.zyzc.com/ad/1039.htm')  then
      begin
        Cancel:=True;
        URL:='http://www.163.com';
        (pDisp as  IWebbrowser2).Navigate2(URL,Flags,TargetFrameName,PostData,Headers);
      end;
end;
procedure DoOnQuit;
begin
end;问题:这个是检测到网页有  'http://www.zyzc.com/ad/1039.htm'  存在就自动跳转到  http://www.163.com这样就有一个问题   就是发现'http://www.zyzc.com/ad/1039.htm'  后  网页就自动跳转到163了  父窗口也没有了(原先的网页也关闭了)  我想把这个段代码改成   检测到 'http://www.zyzc.com/ad/1039.htm' 后不跳转  只是屏蔽这段代码 不执行!  网页其它内容照常读取  怎么做呢?请达人出售帮忙改一下 ,谢谢!最后 为地震中故去的同胞 默哀!

解决方案 »

  1.   

    " 只是屏蔽这段代码 不执行!  网页其它内容照常读取"
    没看懂什么意思下面可以让你不打开'http://www.zyzc.com/ad/1039.htm'也不跳转procedure DoBeforeNavigate2(const pDisp:IDispatch;var URL:OleVariant; 
      var Flags:OleVariant;var TargetFrameName:OleVariant;var PostData:OleVariant; 
      var Headers:OleVariant;var Cancel:WordBool); 
    var 
      i:Integer; 
    begin 
        if (URL='')  or (URL='http://www.zyzc.com/ad/1039.htm')  then 
            Cancel:=True; 
    end; 
      

  2.   

    我有一个网页  进入后检测到不是注册用户  就会跳转到  'http://www.zyzc.com/ad/1039.htm'我用瑞星防火墙  可以屏蔽 'http://www.zyzc.com/ad/1039.htm'  进去那个页面不会跳转到 'http://www.zyzc.com/ad/1039.htm'
    我现在想用BHO检测   我找到了一段代码   可以实现   发现 'http://www.zyzc.com/ad/1039.htm' 后跳转到163但是那样的话  原先的网页也就关闭了
    我现在是想把这段代码改成   不跳转   只是发现这个代码后   不执行就可以了begin 
        if (URL='')  or (URL='http://www.zyzc.com/ad/1039.htm')  then 
            Cancel:=True; 
    end; 
    如果改成这样的话  会显示网页一直无法加载完成
      

  3.   

    那个网页  会用这个进行跳转 <iframe name="ad" id="ad" src="1039.htm" width="0" height="0"></iframe>来检测是否是注册用户    我用瑞星防火墙(网址过滤)  屏蔽 这个地址   我就可以不是会员也可以正常访问那个网页  不会跳转
    可是我用上面的代码能实现 发现这个页面  不跳转他的页面   跳转到我指定的页面
    但是  我需要屏蔽   不需要跳转  我要读那个页面begin  
        if (URL='')  or (URL='http://www.zyzc.com/ad/1039.htm')  then  
            Cancel:=True;  
    end;  
    这样的话  就会一直显示  正在打开……   无法加载完成网页   不知道我说清楚了没有! 帮帮我,谢谢^_^