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

利用JS代碼自動刪除稿件的普通彈幕功能

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

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

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

1.刪除彈幕的流程分析

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

點擊刪除彈幕的按鈕,彈出二次確認框。

點擊確定,成功刪除。

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

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

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

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

2.2

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

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

點擊二次確認框:

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

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

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

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

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

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

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

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

var timeout = prompt("設(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對象,調(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("高級")){
        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代碼自動刪除稿件的普通彈幕功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

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

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

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

    webpack4 處理CSS的方法示例

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

    uniapp使用高德地圖的超詳細步驟

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

    js代碼解密代碼

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

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

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

    JS實現(xiàn)的五級聯(lián)動菜單效果完整實例

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

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

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

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

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

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

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

    微信小程序倒計時功能實例代碼

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

最新評論

大余县| 安康市| 甘洛县| 陆良县| 眉山市| 彭泽县| 汤阴县| 永善县| 桑日县| 昔阳县| 潞城市| 从化市| 平江县| 阳新县| 盐亭县| 凤凰县| 成都市| 闸北区| 湘乡市| 繁昌县| 交城县| 盈江县| 武陟县| 林口县| 静海县| 武鸣县| 达尔| 阜新| 阜阳市| 南和县| 耒阳市| 江口县| 含山县| 永善县| 霸州市| 德阳市| 龙陵县| 剑川县| 于田县| 繁昌县| 浦东新区|