Delphi - TChromium 实现只显示网页的某一个DIV的内容

因为工作需要,一直在使用TChromium插件展示网页内容。今天遇到一个需求:只展示某个网页(商品购买详情页面)中的商品详情。因为TChromium具有良好的js脚本支持,当时也觉得一定可以实现这个功能。

先看看网页端的源码,我需要只展示 div class = “w1000” 的内容。

我的思路是先遍历网页中所有的div元素,设置其他元素不可见,只留下我需要的div就可以了(包括展示它的父层)。

因为很少接触js的代码,设置div不可见的功能着实费了点功夫,惭愧惭愧。

不过最终被我搞定了,使用以下的js脚本,可完美屏蔽其他不需要的div层,只展示指定的div元素:

var i,a="";

var d=document.getElementsByTagName("div"); 

for(i=0;i<d.length;i++)
{                                         
     if ((d[i].className !=="w1000") && (d[i].className !=="jybodybg"))  
{
d[i].style.display="none";
}                                  
       
}

由TChrome来执行这部分的js脚本,在cmLoadEnd事件中,加入以下代码,ok:

procedure TfrmShow.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer);
var
  jsStr: string;
begin
  jsStr := 'var i,a=""; var d=document.getElementsByTagName("div"); '+
           'for(i=0;i<d.length;i++)'+
           '{'+
            'if ((d[i].className !=="w1000") && (d[i].className !=="jybodybg")) '+
            '{'+
            'd[i].style.display="none"; '+
            '}};';
  Frame.ExecuteJavaScript(jsStr, '', 0);
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值