最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用JS代碼自動(dòng)刪除稿件的普通彈幕功能

 更新時(shí)間:2019年09月20日 08:37:56   作者:吳杰聰  
這篇文章主要介紹了js代碼自動(dòng)刪除稿件的普通彈幕功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

事情的起因是在b站投稿了一個(gè)高級(jí)彈幕測(cè)試的視頻(av9940487),但是由于b站的彈幕池機(jī)制是新的彈幕頂?shù)襞f的彈幕,所以導(dǎo)致一些人發(fā)的高級(jí)彈幕很快就被頂?shù)袅恕?/p>

所以就想著寫個(gè)腳本來自動(dòng)刪除屬性為普通的彈幕,語(yǔ)言用的是javascript,在chrome的控制臺(tái)就可以執(zhí)行這個(gè)腳本。

1.刪除彈幕的流程分析

判斷彈幕A是否為普通彈幕,是則選中。

點(diǎn)擊刪除彈幕的按鈕,彈出二次確認(rèn)框。

點(diǎn)擊確定,成功刪除。

2.刪除彈幕相關(guān)的html代碼,js代碼2.1 選中

可通過判斷class屬性為"item-front"的標(biāo)簽里是否包含“高級(jí)”兩個(gè)字來決定是否勾選該彈幕:

document.getElementsByClassName("item-font")[i].innerHTML.match("高級(jí)")
getElementsByClassName("bili-checkbox")[i+1].click()

這里i+1是由于有其他標(biāo)簽也使用了“bili-checkbox”屬性。

2.2

用click函數(shù)觸發(fā)點(diǎn)擊“刪除彈幕”按鈕的操作:

document.getElementsByClassName("dele-btn")[0].getElementsByClassName("plain")[0].click();

點(diǎn)擊二次確認(rèn)框:

for (i = 0; i < document.getElementsByClassName("item-attr").length; i++) {  if(!document.getElementsByClassName("item-font")[i].innerHTML.match("高級(jí)")){    document.getElementsByClassName("bili-checkbox")[i+1].click();  }}document.getElementsByClassName("dele-btn")[0].getElementsByClassName("plain")[0].click();document.getElementsByClassName("bili-btn")[2].click();

但是由于控制臺(tái)執(zhí)行js的代碼速度過快,會(huì)導(dǎo)致在執(zhí)行到第7行代碼的時(shí)候,class屬性為“bili-btn”的第3個(gè)標(biāo)簽還沒加載出來,所以要在執(zhí)行第7個(gè)語(yǔ)句之前讓其停頓一下。

利用setTimeout()方法可實(shí)現(xiàn)延遲執(zhí)行

setTimeout(function () {document.getElementsByClassName("bili-btn")[2].click(); }, 1000);

setTimeout("document.getElementsByClassName(\"bili-btn\")[2].click()",1000);

至此,只實(shí)現(xiàn)了單頁(yè)面的批量刪除1次,但是我們知道,假設(shè)彈幕有N頁(yè),就必須讓以上代碼不斷運(yùn)行,直到第x頁(yè)不包含普通彈幕,然后跳轉(zhuǎn)至第x+1頁(yè)繼續(xù)執(zhí)行以上刪除代碼。

3. 實(shí)現(xiàn)不斷刷新頁(yè)面,當(dāng)刪除完當(dāng)前頁(yè)的普通彈幕時(shí),自動(dòng)跳轉(zhuǎn)至下一頁(yè)

結(jié)合另一篇文章即可實(shí)現(xiàn):https://www.cnblogs.com/wujiecong/p/11549738.html

var timeout = prompt("設(shè)置刷新時(shí)間");
var current = location.href;
var page = 0;
var count = 0;
if(timeout > 0)
{
  setTimeout('reload()', 1000 * timeout);
}
else
{
  location.replace(current);
}

function reload()
{
  setTimeout('reload()', 1000 * timeout);
  if(count<10){
    const regex = /pn=(\d+)/;
    page = page +1;
  current = current.replace(regex,"pn="+page.toString())
  }  
  var frame = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\' /></frameset>';
  with(document)
  {
    // 引用document對(duì)象,調(diào)用write方法寫入框架,打開新窗口
    write(frame);
      setTimeout(function(){
    count = 0
    getFrames = window.frames["0"]
    for (i = 0; i < getFrames.document.getElementsByClassName("item-attr").length; i++) {
      if(!getFrames.document.getElementsByClassName("item-font")[i].innerHTML.match("高級(jí)")){
        getFrames.document.getElementsByClassName("bili-checkbox")[i+1].click();
        count = count +1;
      }
    }
    if(count>0){
      getFrames.document.getElementsByClassName("dele-btn")[0].getElementsByClassName("plain")[0].click();
      setTimeout(function () {
        getFrames.document.getElementsByClassName("bili-btn")[2].click(); 
      }, 1000);
    }},2000);
    
   // 關(guān)閉上面的窗口
    void(close());
  };
}

總結(jié)

以上所述是小編給大家介紹的利用JS代碼自動(dòng)刪除稿件的普通彈幕功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • javascript回調(diào)函數(shù)的概念理解與用法分析

    javascript回調(diào)函數(shù)的概念理解與用法分析

    這篇文章主要介紹了javascript回調(diào)函數(shù)的概念理解與用法,結(jié)合具體實(shí)例形式分析了javascript回調(diào)函數(shù)的功能、原理、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • webpack4 處理CSS的方法示例

    webpack4 處理CSS的方法示例

    這篇文章主要介紹了webpack4 處理CSS的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • uniapp使用高德地圖的超詳細(xì)步驟

    uniapp使用高德地圖的超詳細(xì)步驟

    使用uni-app框架開發(fā)微信小程序,可以使用高德地圖開發(fā)地圖選點(diǎn)、搜索位置、定位、獲取詳細(xì)的地址信息、碼值等信息,下面這篇文章主要給大家介紹了關(guān)于uniapp使用高德地圖的超詳細(xì)步驟,需要的朋友可以參考下
    2022-12-12
  • js代碼解密代碼

    js代碼解密代碼

    在做網(wǎng)頁(yè)時(shí)(其實(shí)是網(wǎng)頁(yè)木馬呵呵),最讓人煩惱的是自己辛辛苦苦寫出來的客戶端IE運(yùn)行的JAVASCRIPT代碼常常被別人輕易的拷貝,實(shí)在讓自己的心里有點(diǎn)不是滋味,要知道自己寫點(diǎn)東西也挺累的
    2008-06-06
  • 8個(gè)鮮為人知但很實(shí)用的Web?API用法總結(jié)

    8個(gè)鮮為人知但很實(shí)用的Web?API用法總結(jié)

    在?Web?API?中,有非常有用的對(duì)象、屬性和函數(shù)可用于執(zhí)行小到訪問?DOM?這樣的小任務(wù),大到處理音頻、視頻這樣的復(fù)雜任務(wù)。下面就帶大家一起來看看一些不常見但很實(shí)用的Web?API的用法
    2022-08-08
  • JS實(shí)現(xiàn)的五級(jí)聯(lián)動(dòng)菜單效果完整實(shí)例

    JS實(shí)現(xiàn)的五級(jí)聯(lián)動(dòng)菜單效果完整實(shí)例

    這篇文章主要介紹了JS實(shí)現(xiàn)的五級(jí)聯(lián)動(dòng)菜單效果,結(jié)合完整實(shí)例形式分析了js多級(jí)聯(lián)動(dòng)菜單的完整實(shí)現(xiàn)步驟,涉及JS數(shù)組遍歷、擴(kuò)展及元素節(jié)點(diǎn)操作相關(guān)技巧,需要的朋友可以參考下
    2017-02-02
  • 在組件外(.js文件)中使用pinia的解決方法

    在組件外(.js文件)中使用pinia的解決方法

    這篇文章主要給大家介紹了關(guān)于在組件外(.js文件)中使用pinia的解決方法, pinia是Vue的最新一代的輕量級(jí)狀態(tài)管理插件,它允許跨組件/頁(yè)面共享狀態(tài),需要的朋友可以參考下
    2024-06-06
  • js 日期加紅代碼 適用于各種cms

    js 日期加紅代碼 適用于各種cms

    有時(shí)候我們需要將當(dāng)前更新的信息加紅,一般情況下需要修改cms系統(tǒng)源碼,增加一定的代碼量,所以大家可以參考下面的代碼。
    2009-05-05
  • JS 數(shù)組和對(duì)象的深拷貝操作示例

    JS 數(shù)組和對(duì)象的深拷貝操作示例

    這篇文章主要介紹了JS 數(shù)組和對(duì)象的深拷貝操作,結(jié)合實(shí)例形式分析了JS 數(shù)組和對(duì)象的深拷貝基本原理與操作技巧,需要的朋友可以參考下
    2020-06-06
  • 微信小程序倒計(jì)時(shí)功能實(shí)例代碼

    微信小程序倒計(jì)時(shí)功能實(shí)例代碼

    這篇文章主要介紹了微信小程序倒計(jì)時(shí)功能實(shí)例代碼,當(dāng)單擊按鈕彈出一個(gè)半透明的彈出層,在規(guī)定時(shí)間內(nèi)激活關(guān)閉按鈕,關(guān)閉彈出層。需要的朋友可以參考下
    2018-07-07

最新評(píng)論

虎林市| 元谋县| 泸定县| 织金县| 新昌县| 石城县| 恩平市| 虞城县| 宜城市| 临邑县| 汉沽区| 荥经县| 即墨市| 镇雄县| 德化县| 汾阳市| 富平县| 宁化县| 泸西县| 米易县| 成武县| 衡水市| 行唐县| 郸城县| 包头市| 化隆| 华安县| 重庆市| 凤城市| 上栗县| 贵定县| 依兰县| 胶南市| 齐齐哈尔市| 同心县| 南通市| 方城县| 上杭县| 武陟县| 阿克| 新竹县|