乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      content.js里面定義的操作為什么網(wǎng)頁沒有按照預(yù)期執(zhí)行或者說執(zhí)行了沒效果???

       融水公子 2023-07-19 發(fā)布于福建
      表白:黑白圣堂血天使,天劍鬼刀阿修羅。 
      講解對象:
      /content.js里面定義的操作為什么網(wǎng)頁沒有按照預(yù)期執(zhí)行或者說執(zhí)行了沒效果???
      作者:融水公子 rsgz
      ===

      今天做了一個(gè)插件。

      content.js主要負(fù)責(zé)和頁面交互 改動頁面元素的。服務(wù)工作者線程主要傳遞消息或者管理功能的

      今天想利用content.js和頁面能夠交互的特點(diǎn),做一款插件去除某個(gè)網(wǎng)站 一訪問就跳出一個(gè)div廣告 擋住用戶繼續(xù)瀏覽的東西

      content.js 里面的邏輯 每隔3秒去除廣告一次,總共去除1分鐘

      {
        var intervalId = setInterval(myFunction, 3000); // 每隔3秒鐘執(zhí)行一次
        
        function myFunction() {
          try {
            // 在這里寫你的代碼邏輯
            var ad = document.querySelectorAll("div#ADS-block-detect")[0];
            console.log(ad);
            ad.style.display = "none";
            console.log(ad.style.display);
          } catch (error) {
            console.error("出現(xiàn)錯誤:", error);
          }
      
          // 檢查是否已經(jīng)執(zhí)行了1分鐘
          if (new Date() - startTime >= 60000) {
            clearInterval(intervalId); // 停止定時(shí)器
          }
        }
      
        var startTime = new Date(); // 記錄開始執(zhí)行的時(shí)間
      }

      之前就簡單的寫了一個(gè)邏輯
      var ad = document.querySelectorAll("div#ADS-block-detect")[0];
      console.log(ad);
      ad.style.display = "none";
      console.log(ad.style.display);
      我發(fā)現(xiàn)控制臺輸出的結(jié)果預(yù)期的都沒問題

      但是那個(gè)代碼還是沒有去除

      我就想是不是加載時(shí)間延遲的問題?后來我就這樣寫 來一個(gè)延遲五秒執(zhí)行動作
      function delay(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
      }
      delay(5000);
      var ad = document.querySelectorAll("div#ADS-block-detect")[0];
      console.log(ad);
      ad.style.display = "none";
      console.log(ad.style.display);
      遺憾的是 控制臺的結(jié)果是預(yù)期的,但是網(wǎng)頁上面的div仍然沒有去除

      我進(jìn)一步去思考 哪里不對勁?因?yàn)槭菄饩W(wǎng)站 延遲的時(shí)候有長有短??偛豢赡芏x1分鐘后再去出去div?這不現(xiàn)實(shí),后來綜合考慮之下,決定設(shè)置總的去除時(shí)間是1分鐘,每間隔3秒去除一次廣告

      經(jīng)過實(shí)驗(yàn)。不僅僅是控制臺符合預(yù)期,現(xiàn)實(shí)網(wǎng)頁也是符合預(yù)期的。非常好。

      但是目前想不到辦法能檢測那個(gè)廣告被去除之后,怎么讓代碼執(zhí)行的動作停止下來,我設(shè)置的執(zhí)行一分鐘,那么代碼還是會執(zhí)行一分鐘,并不會提前停止的

      當(dāng)然了,如果是頁面上去添加一個(gè)按鈕去除,會更加的精準(zhǔn),因?yàn)槿搜勰軠?zhǔn)確的判斷廣告什么時(shí)候跳出來,點(diǎn)擊按鈕之后去除,人還能判斷是否去除,沒有去除再點(diǎn)擊一下即可

      ===
       
      公眾號:不浪仙人
      謝謝大家的支持!可以點(diǎn)擊我的頭像,進(jìn)入我的空間瀏覽更多文章呢。建議大家360doc[www.hbhlny.cn]注冊一個(gè)賬號登錄,里面真的有很多優(yōu)秀的文章,歡迎大家的到來。
      ---
      ';

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多