使用js實現基於可視布局資訊的網頁噪音去除的測試方法

來源:互聯網
上載者:User
 可視布局資訊的網頁噪音去除方法很早就從網上看到,但是苦於沒有java中沒有簡單的方法能夠得到網頁元素位於螢幕中的實際位置,所以一直沒做過,前一段時間學js,突然發現js能很容易得到每個網頁元素位於螢幕中的實際位置。所以就寫了這個簡單函數測試了一下,好像效果還不錯,不過個人認為基於可視布局資訊的網頁噪音去除最好和其他的方法結合使用,單獨使用準確率還不是很好。

<script language="JavaScript">
function getElementTagName(){
    var h1 = 200;
    var h2 = document.body.scrollHeight - 160;
    var w1 = document.body.scrollWidth * 0.3;
    var w2 = document.body.scrollWidth * 0.7;
    //alert("width:" + document.body.scrollWidth  + "height:" + document.body.scrollHeight);
    var ele = document.getElementsByTagName("table");
    alert("元素為table的個數:" + ele.length);
    for (i = 0; i < ele.length; ++i) {
        var temp = "";
        var e = ele(i);
        var   x,y,w,h;  
             oRect   =   e.getBoundingClientRect();  
            x=oRect.left;  
            y=oRect.top;
        w = e.offsetWidth;
        h = e.offsetHeight;

        temp = "table" + i;
        if ((y + h) < h1)
            alert(temp + "/r/nHEADER:/r/n/r/n" + e.innerText);
        if (y >= h2)
            alert(temp + "/r/nFOOTER:/r/n/r/n" + e.innerText);
        if ((x + w) < w1)
            alert(temp + "/r/nLM:/r/n/r/n" + e.innerText);
        if (x >= w2)
            alert(temp + "/r/nRM:/r/n/r/n" + e.innerText);
        if ((y < h2) && ((y + h) >= h1) && (x < w2) && ((x + w) >= w1))
            alert(temp + "/r/nCENTER:/r/n/r/n" + e.innerText);
        //alert(temp);
        //temp += "left:" + x;
        //alert(temp);
        //temp += "top:" + y;
        //alert(temp);
        //temp += "width:" + e.offsetWidth;
        //alert(temp);
        //temp += "height:" + e.offsetHeight;
        //alert(temp + "/r/n/r/n" + e.innerText);
    }
}
</script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.