小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

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

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

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

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

{
  var intervalId = setInterval(myFunction, 3000); // 每隔3秒鐘執(zhí)行一次
  
  function myFunction() {
    try {
      // 在這里寫(xiě)你的代碼邏輯
      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)錯(cuò)誤:", error);
    }

    // 檢查是否已經(jīng)執(zhí)行了1分鐘
    if (new Date() - startTime >= 60000) {
      clearInterval(intervalId); // 停止定時(shí)器
    }
  }

  var startTime = new Date(); // 記錄開(kāi)始執(zhí)行的時(shí)間
}

之前就簡(jiǎn)單的寫(xiě)了一個(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)控制臺(tái)輸出的結(jié)果預(yù)期的都沒(méi)問(wèn)題

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

我就想是不是加載時(shí)間延遲的問(wèn)題?后來(lái)我就這樣寫(xiě) 來(lái)一個(gè)延遲五秒執(zhí)行動(dòng)作
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);
遺憾的是 控制臺(tái)的結(jié)果是預(yù)期的,但是網(wǎng)頁(yè)上面的div仍然沒(méi)有去除

我進(jìn)一步去思考 哪里不對(duì)勁?因?yàn)槭菄?guó)外網(wǎng)站 延遲的時(shí)候有長(zhǎng)有短。總不可能定義1分鐘后再去出去div?這不現(xiàn)實(shí),后來(lái)綜合考慮之下,決定設(shè)置總的去除時(shí)間是1分鐘,每間隔3秒去除一次廣告

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

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多