1. 程式人生 > >關於js廣告被遮蔽時的解決辦法

關於js廣告被遮蔽時的解決辦法

關於廣告被遮蔽時的解決辦法1


獲取整個頁面的a標籤的href,target,onclick跳轉 
存進一個數組


獲取廣告,當被影藏或找不到時,
修改全部的a標籤,使其跳轉到廣告頁面,
第一次點選後,把數組裡的資料全部返回給a標籤,
第二次點選正常
程式碼如下:
html部分:


<div class="aaa" style="width: 100px;height: 100px;background: black;display: none;"></div>
<a href="http://www.baidu.com" target="_blank"><div></div></a>
<a href="http://www.baidu.com" ><div></div></a>
<a href="http://www.baidu.com" onclick="" target="_blank"><div></div></a>
<!--&lt;!&ndash;<a href="javascript:void(0);" onclick="window.location.href='http://www.baidu.com'" target="_blank"><div></div></a><br/>&ndash;&gt;只會當前頁面開啟-->
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank"><div></div></a><br/>
<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com','_blank');" target="_blank">




js部分:


    window.onload=function () {
      var aaa=document.getElementsByClassName("aaa");
      var a=document.getElementsByTagName("a");


        console.log(a);
        console.log(aaa)
      var array=[];
//      var click=true;




        for(var i=0;i<a.length;i++){
        if(a[i].getAttributeNode("onclick")==null){
          console.log("111")
          click="";


        }else{
          click=a[i].getAttributeNode("onclick").nodeValue;
        }
//        click=true;
          array.push({href:a[i].href,target:a[i].target,click:click});


        }
      console.log(array);
        //||aaa[0].style.visibility=="hidden"
        if(aaa[0].style.display=="none"){


          for(var i=0;i<a.length;i++){
            a[i].href="http://www.youku.com";
            if(a[i].getAttributeNode("onclick")==null){
              var kaiguan=true;
              a[i].onclick=function () {


               dianji();
               console.log(kaiguan)
              }




            }else{
              a[i].getAttributeNode("onclick").nodeValue=null;
              var kaiguan=true;
              a[i].onclick=function () {


                dianji();
                console.log(kaiguan)
              }
            }
            a[i].target="_blank";
          }


        }
           /* if(kaiguan){


            }else{
              a.onclick= function () {
                dianji()
              }
            }*/
      function dianji() {
        if(!kaiguan){
          for(var i=0;i<a.length;i++){
            a[i].href=array[i].href;
            if(a[i].getAttributeNode("onclick")==null){


            }else{
              a[i].getAttributeNode("onclick").nodeValue=array[i].click;
            }
            a[i].target=array[i].target;
          }
        }else{
          kaiguan=false;
        }


      }
console.log(a)


    }












還有一點問題:如果是a標籤的onclick事件,第二次點選不會彈出原來的地址,第二次只會改變地址,第三次才能彈出原來的