您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
定时从设置的字幕中随机取出一条在B站直播间发送,需先登录B站账号
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/447936/1070630/b-live-random-send-%E8%AF%97%E8%AF%8D.js
// ==UserScript== // @name b-live-random-send-诗词 // @version 1.2.3 // @description 定时从设置的字幕中随机取出一条在B站直播间发送,需先登录B站账号 // @author Gamyou // @include /https?:\/\/live\.bilibili\.com\/[blanc\/]?[^?]*?\d+\??.*/ // @icon https://www.bilibili.com/favicon.ico // @grant none // @run-at document-end // @license Apache License, Version 2.0 // @note 22-07-16 1.2.3 修复设置弹幕时旧(初始)数据没有清空的BUG // @note 22-06-24 1.2.2 优化部分代码 // @note 22-06-20 1.2.1 修复定时停止不能再开始的BUG // @note 22-06-19 1.2.0 添加弹幕设置功能 // ==/UserScript== (function () { 'use strict'; let data1 = [ '红', '黄', '蓝', '绿', '<color=red>红</color>', '<a>蓝</a>', '番茄炒西红柿', '西红柿炒蛋', '红烧狮子头', '绿豆', '红豆', '黄豆', '黄金乡', '非酋黄金乡', '蓝猫', '红糖馒头', '红酒煨鸡翅', '蓝孩子', '红高粱', '红辣椒', '绿豆饼', '黄鼠狼', '金黄色葡萄球菌', '黄金', '绿豆沙', '黄焖鸡', '红海行动', '绿帽侠', '终焉红', '板蓝根', '大黄鸭', '小黄鸭', '绿色出行', '老板大气!点点红包抽礼物!', '周瑜打黄盖', '黄码', '绿码', '红码', '绿豆糖水', '<a>随机</a>' ]; let data2 = [ '大漠风尘日色昏,红旗半卷出辕门。', '红树青山日欲斜,长郊草色绿无涯。', '接天莲叶无穷碧,映日荷花别样红。', '隔断红尘三十里,白云红叶两悠悠。', '寒夜客来茶当酒,竹炉汤沸火初红。', '红颜未老恩先断,斜倚薰笼坐到明。', '秋鬓含霜白,衰颜倚酒红。', '落红不是无情物,化作春泥更护花。', '停车坐爱枫林晚,霜叶红于二月花。', '草木知春不久归,百般红紫斗芳菲。', '寻得桃源好避秦,桃红又是一年春。', '一道残阳铺水中,半江瑟瑟半江红。', '红豆生南国,春来发几枝。', '春色满园关不住,一枝红杏出墙来。', '等闲识得东风面,万紫千红总是春。', '晓看红湿处,花重锦官城。', '蚕眠桑老红闺静,灯火三更作茧圆。', '百啭千声随意移,山花红紫树高低。', '洞房昨夜停红烛,待晓堂前拜舅姑。', '花开红树乱莺啼,草长平湖白鹭飞。', '一从梅粉褪残妆,涂抹新红上海棠。', '山明水净夜来霜,数树深红出浅黄。', '侍臣鹄立通明殿,一朵红云捧玉皇。', '敲断玉钗红烛冷,计程应说到常山。', '天上碧桃和露种,日边红杏倚云栽。', '横笛闻声不见人,红旗直上天山雪。', '醁亚蛮觥奉君寿,玉山三献春红透。', '木末芙蓉花,山中发红萼。', '劳歌一曲解行舟,红叶青山水急流。', '日出江花红胜火,春来江水绿如蓝。', '草树知春不久归,百般红紫斗芳菲。', '一骑红尘妃子笑,无人知是荔枝来。', '荆溪白石出,天寒红叶稀。', '流光容易把人抛,红了樱桃,绿了芭蕉。', '红袖织绫夸柿蒂,青旗沽酒趁梨花。', '泪眼问花花不语,乱红飞过秋千去。', '雨打青松青,霜染枫叶红。', '晓晴寒未起,霜叶满阶红。', '五门西角红楼下,一树丹枫马上看。', '枫叶红霞举,苍芦白浪川。', '林花谢了春红,太匆匆。', '西宫南内多秋草,落叶满阶红不扫。', '恸哭六军具缟素,冲冠一怒为红颜。', '去年今日此门中,人面桃花相映红。', '半卷红旗临易水,霜重鼓寒声不起。', '纷纷暮雪下辕门,风掣红旗冻不翻。', '弄篙莫溅水,畏湿红莲衣。', '紫陌红尘拂面来,无人不道看花回。', '惆怅阶前红牡丹,晚来唯有两枝残。', '明朝风起应吹尽,夜惜衰红把火看。', '锦衣红夺彩霞明,侵晓春游向野庭。', '约岭烟深翠,分旗霞散红。', '岸菊初含蕊,园梨始带红。', '阶馥舒梅素,盘花卷烛红。', '带岫凝全碧,障霞隐半红。', '红雨随心翻作浪,青山着意化为桥。', '红花耽雾绕轻盈,飞絮游丝无定。', '中华儿女多奇志,不爱红装爱武装。', '阿姊闻妹来,当户理红妆。', '须晴日,看红装素裹,分外妖娆。', '红藕香残玉簟秋。轻解罗裳,独上兰舟。', '半匹红绡一丈绫,系向牛头充炭直。', '夜深忽梦少年事,梦啼妆泪红阑干。', '五陵年少争缠头,一曲红绡不知数。', '归心千古终难白,啼血万山多是红。', '红鬣锦鬃风騄骥,黄络青丝电紫骝。', '红酥手,黄縢酒,满城春色宫墙柳。', '春如旧,人空瘦,泪痕红浥鲛绡透。', '满眼游丝兼落絮,红杏开时,一霎清明雨。', '何须浅碧深红色,自是花中第一流。', '一尺深红蒙曲尘,天生旧物不如新。', '玲珑骰子安红豆,入骨相思知不知。', '林花谢了春红,太匆匆。无奈朝来寒雨晚来风', '青山依旧在,几度夕阳红。', '少年听雨歌楼上。红烛昏罗帐。', '一别都门三改火,天涯踏尽红尘。', '肠已断,泪难收。相思重上小红楼。', '花褪残红青杏小。燕子飞时,绿水人家绕。', '人无千日好,花无百日红。', '只恐夜深花睡去,故烧高烛照红妆。', '江深竹静两三家,多事红花映白花。', '桃花一簇开无主,可爱深红爱浅红?', '红泪偷垂,满眼春风百事非。', '最是秋风管闲事,红他枫叶白人头。', '谁教岁岁红莲夜,两处沉吟各自知。', '彩线轻缠红玉臂,小符斜挂绿云鬟。', '一枝红艳露凝香,云雨巫山枉断肠。', '莽红尘何处觅知音?青衫湿!', '任酒花白,眼花乱,烛花红。', '倩何人唤取,红巾翠袖,揾英雄泪?', '家家乞巧望秋月,穿尽红丝几万条。', '满眼游丝兼落絮,红杏开时,一霎清明雨。', '今年花胜去年红。可惜明年花更好,知与谁同', '弄潮儿向涛头立,手把红旗旗不湿。', '念桥边红药,年年知为谁生。', '不恨此花飞尽,恨西园、落红难缀。', '炉火照天地,红星乱紫烟。', '是处红衰翠减,苒苒物华休。', '此花此叶常相映,翠减红衰愁杀人。', '隔座送钩春酒暖,分曹射覆蜡灯红。', '千红万紫安排著,只待新雷第一声。', '飞花两岸照船红,百里榆堤半日风。', '乱点碎红山杏发,平铺新绿水蘋生。', '芍药打团红,萱草成窝绿。', '风含翠篠娟娟净,雨裛红蕖冉冉香。', '好风胧月清明夜,碧砌红轩刺史家。', '羞红颦浅恨,晚风未落,片绣点重茵。', '寥落古行宫,宫花寂寞红。', '且恁偎红倚翠,风流事、平生畅。', '琉璃钟,琥珀浓,小槽酒滴真珠红。', '况是青春日将暮,桃花乱落如红雨。', '翠幕深庭,露红晚、闲花自发。', '倩双成、一曲紫云回,红莲折。', '绿草蔓如丝,杂树红英发。', '几回花下坐吹箫,银汉红墙入望遥。', '瓢弃尊无绿,炉存火似红。', '满堂唯有烛花红,杯且从容,歌且从容。', '无限伤心夕照中,故国凄凉,剩粉余红。', '兴逐乱红穿柳巷,困临流水坐苔矶。', '紫陌乱嘶红叱拨,绿杨高映画秋千。', '肠已断,泪难收。相思重上小红楼。', '群芳过后西湖好,狼籍残红。', '绣羽衔花他自得,红颜骑竹我无缘。', '单衫杏子红,双鬓鸦雏色。', '开门郎不至,出门采红莲。', '置莲怀袖中,莲心彻底红。', '红颜弃轩冕,白首卧松云。', '举头红日近,回首白云低。', '惜春长怕花开早,何况落红无数。', '须臾日射燕脂颊,一朵红苏旋欲融。', '红罗著压逐时新,吉了花纱嫩麹尘。', '头上红冠不用裁,满身雪白走将来。', '枝间新绿一重重,小蕾深藏数点红。', '新人新人听我语,洛阳无限红楼女。', '金镫下山红粉晚,牙樯捩柁青楼远。', '桃花萼。雨肥红绽东风恶。东风恶。', '莺嘴啄花红溜,燕尾点波绿皱。', '木末芙蓉花,山中发红萼。', '昨日春风源上路,可怜红锦枉抛泥。', '感君缠绵意,系在红罗襦。', '寄言全盛红颜子,应怜半死白头翁。', '此翁白头真可怜,伊昔红颜美少年。', '吴娃与越艳,窈窕夸铅红。', '红楼隔雨相望冷,珠箔飘灯独自归。', '游女泛江晴,莲红水复清。', '一川晴日破春容,柳絮桃红赴望中。', '红芳晓露浓,绿树秋风冷。', '红烛剪还明,绿尊添又满。', '妾家红蕖曲,绿水春满满。', '繁红层若云,密绿叠如浪。', '全红开似镜,半绿卷如杯。', '落红双雉过,新绿一鹃啼。', '桃红含宿雨,柳绿更朝风。', '花红结作屏,山绿围成障。', '片片红梅落,纤纤绿草生。', '狂风落尽深红色,绿叶成阴子满枝。', '红芳绿笋是行路,纵有啼猿听却幽。', '红满枝,绿满枝,宿雨厌厌睡起迟。', '东池种莲子,红白间稀疏。', '翠柳开眉色,红桃乱脸新。', '红颜悲旧国,青岁歇芳洲。', '红颜弃轩冕,白首卧松云。', '白蘋安石渚,红叶子云台。', '红粉座中客,綵斿江上城。', '青楼晓日珠帘映,红粉春妆宝镜催。', '红豆蔻,紫玫瑰,谢娘家接越王台。', '红蜡烛,青丝曲,偏能钩引泪阑干。', '醉貌如霜叶,虽红不是春。', '宝髻偏宜宫样,莲脸嫩,体红香。', '花红易衰似郎意,水流无限似侬愁。', '霜前月下,斜红淡蕊,明媚欲回春。', '池上海棠梨,雨晴红满枝。', '正是和风丽日,几许繁红嫩绿,雅称嬉游去。', '处处踏青斗草,人人眷红偎翠。', '江枫渐老,汀蕙半凋,满目败红衰翠。' ]; let data3 = [ '可惜重阳,不把黄花与。', '黄衫飞白马,日日青楼下。', '白日依山尽,黄河入海流。', '淑气催黄鸟,晴光转绿苹。', '东飞伯劳西飞燕,黄姑织女时相见。', '四月南风大发黄,枣花未落荫桐长。', '千里黄云白日曛,北风吹雁雪纷纷。', '儿童急走追黄蝶,飞入菜花无处寻。', '故人西辞黄鹤楼,烟花三月下扬州。', '黄四娘家花满蹊,千朵万朵压枝低。', '黄河远上白云间,一片孤城万仞山。', '秋风起兮白云飞,草木黄落兮雁南归。', '昔人已乘黄鹤去,此地空余黄鹤楼。', '黄鹤一去不复返,白云千载空悠悠。', '黄鹤楼中吹玉笛,江城五月落梅花。', '冲天香阵透长安,满城尽带黄金甲。', '黄金榜上,偶失龙头望。', '黄鹄乘天风,飘飘忽高翔。', '黄巾骑马腾红云,绿章细书天篆文。', '黄河回九曲,适郢乍经过。', '黄消鹅子翠消鸦,簟拂层冰帐九华。', '黄曲峰高不易寻,倦游小憩北山岑。', '黄牛庙下水如弦,白狗峡中数尺天。', '黄陵庙下倚船窗,水浅沙平属玉双。', '黄金作钗分两股,青髻如云凤双舞。', '黄华丹树绕渔庄,锦瑟秋风子夜长。', '黄叶孤村径路遥,时来幽客伴萧条。', '黄鹄不重适,哀鸣常自怜。', '黄山如岱岳,萝山若梁甫。', '黄山历尽见孤城,城上楼高眼倍明。', '黄陵日已昏,萧瑟凉飙起。', '黄陵祠下月明多,不见湘灵翠辇过。', '黄发真人戴玉冠,身骑金虎佩苍鸾。', '黄门给事三十余,面如红玉少有须。', '黄莺紫燕寂无喧,新声最好是闻蝉。', '黄花开后叶初霜,紫蟹肥时酒满缸。', '黄耳墓前春日迟,柳条花萼正参差。', '黄家渡西多好春,黄家渡上酒能醇。', '黄门飞鞚到天坛,传道东朝赐讲官。', '黄河官路黑山程,羌笛横吹汉月明。', '黄苇丹枫叶落时,水云漠漠雁来迟。', '黄骊时复唤春游,陌上杨花漫不休。', '黄个啼暖隔江村,嫩绿团阴暗小门。', '黄金盘子爇龙涎,波面风来香满船。', '黄鹤山前汉水濆,一时英俊总能文。', '黄沙障天天半昏,炮头风急万马奔。', '黄花隐绿叶,雨过仍离披。', '黄金小纽茜衫温,袖摺犹存举案痕。', '黄酋堕马已成禽,汉卒争功被脱身。', '黄柳城边风雨多,白头宫女有遗歌。', '黄菊初华客未归,登高自试苎罗衣。', '黄鹤楼前汉阳雪,岳阳楼前洞庭月。', '黄梅雨晴桑重绿,南风楝花开蔌蔌。', '黄云冻凝不成叶,十载江南无此雪。', '黄落山川入望遥,行过云岭忆前朝。', '黄沙漠漠起边烽,万里山河落照中。', '黄金粪牛裂西土,碧钗十二惊折股。', '黄龙洲前雪浪飞,浪花叠作五郎矶。', '两个黄鹂鸣翠柳,一行白鹭上青天。', '黄河远上白云间,一片孤城万仞山。', '东篱把酒黄昏后,有暗香盈袖。', '莫道不销魂,帘卷西风,人比黄花瘦。', '疏影横斜水清浅,暗香浮动月黄昏。', '夕阳无限好,只是近黄昏。', '黄梅时节家家雨,青草池塘处处蛙。', '门前流水尚能西!休将白发唱黄鸡。', '独怜幽草涧边生,上有黄鹂深树鸣。', '已是黄昏独自愁,更着风和雨。', '黄莺弄渐变,翠林花落余。', '悬知穆天子,黄竹谩言诗。', '画幕云举,黄流玉醇。', '紫绂名初拜,黄缣迹尚留。', '青松系马攒岩畔,黄菊留人籍道边。', '黄落空山满地知,江湖残线一襟诗。', '黄昏冷雨湿金鞍,鞮箙提巡绕禁銮。', '黄陵庙下潇湘浦,西风作寒东作雨。', '紫氛随马处,黄阁驻车情。', '黄山积高次,表里望京邑。', '黄河分地络,飞观接天津。', '黄泉白骨不可报,雀钗翠羽从此辞。', '黄花冷落不成艳,红叶飕飗竞鼓声。', '黄钟既陈玉烛,红粒方殷稔岁。', '黄金台下忽然惊,征人归日二毛生。', '黄河信有澄清日,后代应难继此才。', '黄莺急啭春风尽,斑马长嘶落景催。', '黄图巡沃野,清吹入离宫。', '黄衫罩甲动成群,靺鞨分排兽面文。', '鸦黄粉白车中出,含娇含态情非一。', '钟山风雨起苍黄,百万雄师过大江。', '翅低白雁飞仍重,舌涩黄鹂语未成。', '夜雨剪春韭,新炊间黄粱。', '黄河摇溶天上来,玉楼影近中天台。', '塞黑云黄欲渡河,风沙眯眼雪相和。', '一去紫台连朔漠,独留青冢向黄昏。', '况属高风晚,山山黄叶飞。', '紫塞三关隔,黄尘八面通。', '常恐秋节至,焜黄华叶衰。', '言入黄花川,每逐青溪水。', '黄叶古祠寒雨积,清山荒冢白云多。', '黄叶声在地,青山影入城。', '君不见,黄河之水天上来,奔流到海不复回。', '当窗理云鬓,对镜帖花黄。', '黄埃散漫风萧索,云栈萦纡登剑阁。', '上穷碧落下黄泉,两处茫茫皆不见。', '钗留一股合一扇,钗擘黄金合分钿。', '蛾儿雪柳黄金缕,笑语盈盈暗香去。', '满地黄花堆积,憔悴损,如今有谁堪摘?', '梧桐更兼细雨,到黄昏、点点滴滴。', '休将白发唱黄鸡。', '夜来南风起,小麦覆陇黄。', '翩翩两骑来是谁?黄衣使者白衫儿。', '报君黄金台上意,提携玉龙为君死。', '黄鹤之飞尚不得过,猿猱欲度愁攀援。', '曰黄昏以为期兮,羌中道而改路。', '碧云天,黄叶地,秋色连波,波上寒烟翠。', '映阶碧草自春色,隔叶黄鹂空好音。', '住近湓江地低湿,黄芦苦竹绕宅生。', '月上柳梢头,人约黄昏后。', '牧童骑黄牛,歌声振林樾。', '梅子金黄杏子肥,麦花雪白菜花稀。', '一年好景君须记,最是橙黄橘绿时。', '雨横风狂三月暮,门掩黄昏,无计留春住。', '黄鸟于飞,集于灌木,其鸣喈喈。', '黄师塔前江水东,春光懒困倚微风。', '梅子黄时日日晴,小溪泛尽却山行。', '为篱下黄花开遍,秋容如拭。', '世情薄,人情恶,雨送黄昏花易落。', '结发同枕席,黄泉共为友。', '卿当日胜贵,吾独向黄泉!', '奄奄黄昏后,寂寂人定初。', '六曲阑干偎碧树,杨柳风轻,展尽黄金缕。', '桑之落矣,其黄而陨。', '可惜一片清歌,都付与黄昏。', '天也妒,未信与,莺儿燕子俱黄土。', '暗淡轻黄体性柔,情疏迹远只香留。', '君不见走马川行雪海边,平沙莽莽黄入天。', '烽火城西百尺楼,黄昏独上海风秋。', '关城榆叶早疏黄,日暮云沙古战场。', '黄沙百战穿金甲,不破楼兰终不还。', '秋浦猿夜愁,黄山堪白头。', '世人结交须黄金,黄金不多交不深。', '万事到头都是梦,休休。明日黄花蝶也愁。', '一川烟草,满城风絮,梅子黄时雨。', '漠漠水田飞白鹭,阴阴夏木啭黄鹂。', '归来饱饭黄昏后,不脱蓑衣卧月明。', '九曲黄河万里沙,浪淘风簸自天涯。', '夜雨翦春韭,新炊间黄粱。', '柳条百尺拂银塘,且莫深青只浅黄。', '情脉脉。半黄橙子和香擘。和香擘。', '黄鹤楼中吹玉笛,江城五月落梅花。', '黄河捧土尚可塞,北风雨雪恨难裁。', '朝见马岭黄沙合,夕望龙城阵云起。', '白酒新熟山中归,黄鸡啄黍秋正肥。', '犹恨东风无意思,更吹烟雨暗黄昏。', '三面黄金甲,单于破胆还。', '春无踪迹谁知?除非问取黄鹂。', '雨昏青草湖边过,花落黄陵庙里啼。', '铁马金戈,青冢黄昏路。', '白日登山望烽火,黄昏饮马傍交河。', '暗暗淡淡紫,融融冶冶黄。', '乱条犹未变初黄,倚得东风势便狂。', '把酒送春春不语。黄昏却下潇潇雨。', '三春白雪归青冢,万里黄河绕黑山。', '赤橙黄绿青蓝紫,谁持彩练当空舞?', '七盘九折难行处,尽是龚黄界外山。', '蟹黄经雨润,鸭绿得春肥。', '淑气催黄鸟,晴光转绿苹。', '见碧水丹山,黄芦苦竹。', '朝见马岭黄沙合,夕望龙城阵云起。', '忽然更作渔阳掺,黄云萧条白日暗。', '燕子衔将春色去,纱窗几阵黄梅雨。', '去年五月黄梅雨,曾典袈裟籴米归。', '可恨良辰天不与。才过斜阳,又是黄昏雨。', '更深黄月落,夜久靥星稀。', '恼乱层波横一寸。斜阳只与黄昏近。', '玉皇开碧落,银界失黄昏。', '如丝苣甲饤春盘,韭叶金黄雪未干。', '黄叶仍风雨,青楼自管弦。', '汾水碧依依,黄云落叶初飞。', '手种黄柑二百株,春来新叶遍城隅。', '出塞入塞寒,处处黄芦草。', '凤林关里水东流,白草黄榆六十秋。', '离愁不管人飘泊。年年孤负黄花约。', '燕子又将春色去。纱窗一阵黄昏雨。', '山头堆白雪,风里卷黄沙。', '黄河落天走东海,万里写入胸怀间。', '黄芦掩映清江下,斜缆着钓鱼艖。', '明月黄河夜,寒沙似战场。', '斗万花样巧,深染蜂黄。', '旌旆夹两山,黄河当中流。', '黄华自与西风约,白发先从远客生。', '春阳如昨日,碧树鸣黄鹂。', '水满池塘花满枝。乱香深里语黄鹂。', '黄花本是无情物,也共先生晚节香。', '灼灼野花香,依依金柳黄。' ]; let data4 = [ '云横秦岭家何在?雪拥蓝关马不前。', '沧海月明珠有泪,蓝田日暖玉生烟。', '浆向蓝桥易乞,药成碧海难奔。', '筚路蓝缕,以启山林。', '蓝桥春雪君归日,秦岭秋风我去时。', '青,取之于蓝而青于蓝;冰,水为之而寒于水', '揉蓝衫子杏黄裙,独倚玉阑无语点檀唇。', '蓝桥何处觅云英。只有多情流水、伴人行。', '梦入蓝桥,几点疏星映朱户。', '老夫饥寒龙为愁,蓝溪水气无清白。', '蓝溪之水厌生人,身死千年恨溪水。', '越梅半拆轻寒里,冰清淡薄笼蓝水。', '蓝水远从千涧落,玉山高并两峰寒。', '山泼黛,水挼蓝,翠相搀。', '千里嘉陵江水色,含烟带月碧于蓝。', '林深时见鹿,海蓝时见鲸,梦醒时见你。', '莫道蓝桥路远,行云中隔幽坊。', '却爱蓝罗裙子,羡他长束纤腰。', '茫然不悟身何处,水色天光共蔚蓝。', '染为红线红于蓝,织作披香殿上毯。', '蓝田曾种玉,红叶自题诗。', '挼丝团金悬簏簌,神光欲截蓝田玉。', '风师剪翠换枯条,青帝挼蓝染江水。', '终朝采蓝,不盈一襜。', '一幅云蓝一叶舟,隔江山色镜中收。', '老过占他蓝尾酒,病馀收得到头身。', '南山削秀蓝玉合,小雨归去飞凉云。', '初从蓝田入,顾盻劳颈脰。', '云覆蓝桥雪满溪,须臾便与碧峰齐。', '天色渐明回一望,玉尘随马度蓝桥。', '色嫩似将蓝汁染,叶齐如把剪刀裁。', '柳已如蓝碧,桃元胜锦红。', '鹑衣百年甘蓝缕,鬓雪浸浸用心苦。', '色分蓝叶青,声比磬中鸣。', '细草浓蓝泼,轻烟匹练拖。', '麻姑山水蔚蓝天,醉墨横飞倚少年。', '蓝上舍已成,田家雨新足。', '夕照红于烧,晴空碧胜蓝。', '楼上山如淡墨画,城中水似轻蓝挼。', '万里烟萝锦帐间,云迎水送度蓝关。', '驾言山中游,蓝衣照春色。', '蓝田战秦将,子婴竖降帻。', '蓝桥曾种玉,春笋出仙家。', '蓝田通别种,湘浦怨春寒。', '蓝生善画竹,羞学管仲姬。', '旭日波光动,精蓝曙色开。', '三杯蓝尾酒,一楪胶牙饧。', '云蒸昆山液,月浸蓝田英。', '巴江江水色,一带浓蓝碧。', '江水挼蓝绿,江花泼火红。', '山色堆蓝重,水光拖练寒。', '道人禅定处,神在蔚蓝天。', '绝壁耸精蓝,孤悬五千丈。', '不作巫阳云雨梦,却寻仙侣到蓝桥。', '万里烟萝锦帐间,云迎水送度蓝关。', '楼上山如淡墨画,城中水似轻蓝挼。', '初春山色蔚蓝烟,才见涓涓雨后泉。', '千里嘉陵江水色,含烟带月碧于蓝。', '好是雨馀江上望,白云堆里泼浓蓝。', '姑苏台下水如蓝,天赐仙乡奉旨甘。', '平生粥饭寄伽蓝,老日田园强自添。', '晴山如黛水如蓝,波净天澄翠满潭。', '青山如画水如蓝,自笑平生性僻耽。', '早春游望过欧潭,青竹红桃水似蓝。', '一条罗带水拖蓝,只少渔舟着两三。', '云头云起晴飞雨,山外山高青出蓝。' ]; let data5 = [ '诗家清景在新春,绿柳才黄半未匀。', '绿阴不减来时路,添得黄鹂四五声。', '知否,知否?应是绿肥红瘦。', '绿杨烟外晓寒轻,红杏枝头春意闹。', '千里莺啼绿映红,水村山郭酒旗风。', '青山绿水,白草红叶黄花。', '绿兮衣兮,绿衣黄里。', '绿满山川闻杜宇。便做无情,莫也愁人苦。', '惟有绿荷红菡萏,卷舒开合任天真。', '晚日寒鸦一片愁。柳塘新绿却温柔。', '人面不知何处,绿波依旧东流。', '绿树交加山鸟啼,晴风荡漾落花飞。', '终朝采绿,不盈一匊。', '碧绿草萦堤,红蓝花满溪。', '绿叶霜中夏,红花雪里春。', '青楼含日光,绿池起风色。', '绿叶迎春绿,寒枝历岁寒。', '绿叶红英遍,仙经自讨论。', '绿堤春草合,王孙自留玩。', '春园芳已遍,绿蔓杂红英。', '绿影竞扶疏,红姿相照灼。', '绿蚁新醅酒,红泥小火炉。', '绿艳闲且静,红衣浅复深。', '绿绢芭蕉裂,黄金橘柚悬。', '绿英满香砌,两两鸳鸯小。', '绿树连村暗,黄花出陌稀。', '绿苔行屐稳,黄鸟傍窗频。', '绿藓深迎步,红霞烂满衣。', '青郊鸣锦雉,绿水漾金鳞。', '绿净不摇风,从教春草笑。', '绿艾初垂户,青菰已荐觞。', '清泉绕庭除,绿筱映轩槛。', '西湖频送客,绿波舟楫轻。', '应怜百花尽,绿叶暗红榴。', '绿竹覆清渠,尘心日日疏。', '东南万里江,绿净一杯酒。', '绿萼披风瘦,红苞浥露肥。', '绿鬓久垂雪,壮心今已灰。', '青髯千岁寿,绿发九江希。', '绿垂朱雀柳,双燕不胜春。', '求友不须鸣,绿窗人倦绣。', '绿树塞柴门,青山压茅宇。', '绿树莺歌遍,红檐燕语频。', '青山飞白鹭,绿竹啭黄莺。', '青山不改色,绿树有新姿。', '白发生今年,绿酒且今夕。', '绿水映红莲,莲叶何田田。', '安流日正昼,净绿天无风。', '繁绿阴全合,衰红展渐难。', '紫绿终朝染,因何不识非。', '岸绿野烟远,江红斜照微。', '短绿抽心草,深红半面花。', '槐绿阴初合,榴繁艳欲然。', '夏绿分照水,秋香仍满地。', '叶绿带寒烟,花繁泣微雨。', '新绿小池沼,田田浮翠钱。', '暗绿团团树,浮苍浅浅山。', '厌绿不厌红,夺朱非恶紫。', '侬家湖水上,水绿照蛾眉。', '草绿春风转,花浓夕照曛。', '春风吹绿草,草绿伤人心。', '东风杨柳树,吹绿草堂西。', '叶绿与花黄,无情自在芳。', '蔚蔚傲霜叶,亭亭绿池畔。', '亭亭绿荷叶,密密罩清波。', '一片绿衫消不得,腰金拖紫是何人。', '千杯绿酒何辞醉,一面红妆恼杀人。', '参差碧岫耸莲花,潺湲绿水莹金沙。', '公子王孙逐后尘,绿珠垂泪滴罗巾。', '绿杨阴转画桥斜,舟有笙歌岸有花。', '借问春风何处好,绿杨深巷马头斜。', '碧玉妆成一树高,万条垂下绿丝绦。', '最爱湖东行不足,绿杨阴里白沙堤。', '绿树村边合,青山郭外斜。', '春风又绿江南岸,明月何时照我还?', '今夜偏知春气暖,虫声新透绿窗纱。', '萋萋春草秋绿,落落长松夏寒。', '锦江近西烟水绿,新雨山头荔枝熟。', '绿竹入幽径,青萝拂行衣。', '苔痕上阶绿,草色入帘青。', '庭中有奇树,绿叶发华滋。 ', '今日云景好,水绿秋山明。', '入水文光动,抽空绿影春。', '客路青山外,行舟绿水前。', '门前迟行迹,一一生绿苔。', '绿遍山原白满川,子规声里雨如烟。', '春草年年绿,王孙归不归。', '绿堤春草合,王孙自留玩。', '回风动地起,秋草萋已绿。', '白毛浮绿水,红掌拨清波。', '青箬笠,绿蓑衣,斜风细雨不须归。', '绿树阴浓夏日长,楼台倒影入池塘。', '萋萋总是无情物,吹绿东风又一年。', '鸟下绿芜秦苑夕,蝉鸣黄叶汉宫秋。', '荷蓑出林春雨细,芦管卧吹莎草绿。', '江南有丹橘,经冬犹绿林。', '燕草如碧丝,秦桑低绿枝。', '手持绿玉杖,朝别黄鹤楼。', '绿杨陌上送行人,马去东回一望尘。', '知君绿桑下,更有新相识。', '绿暗红稀出凤城,暮云楼阁古今情。', '长安白日照春空,绿杨结烟垂袅风。', '睡觉绿鬟风乱,画屏云雨散。', '春风艳阳色,柳绿花如霰。', '红解笑,绿能颦,千般恼乱春。', '迢递高城百尺楼,绿杨枝外尽汀洲。', '鸟下绿芜秦苑夕,蝉鸣黄叶汉宫秋。', '一顷含秋绿,森风十万竿。', '伤心桥下春波绿,曾是惊鸿照影来。', '依旧,依旧,人与绿杨俱瘦。', '春日宴,绿酒一杯歌一遍。', '春未绿,鬓先丝。人间别久不成悲。', '梅子留酸软齿牙,芭蕉分绿与窗纱。', '菡萏香销翠叶残,西风愁起绿波间。', '一水护田将绿绕,两山排闼送青来。', '桃红复含宿雨,柳绿更带朝烟。', '雪消门外千山绿,花发江边二月晴。', '一畦春韭绿,十里稻花香。', '记得绿罗裙,处处怜芳草。', '半溪流水绿,千树落花红。', '绿酒初尝人易醉。一枕小窗浓睡。', '门外无人问落花,绿阴冉冉遍天涯。', '篱落疏疏一径深,树头新绿未成阴。', '风吹旷野纸钱飞,古墓垒垒春草绿。', '绿阴不减来时路,添得黄鹂四五声。', '绿桂为佳客,红蕉当美人。', '海燕欲飞调羽,萱草绿,杏花红,隔帘栊。' ]; let timer = null; // 定时器 let data, waiters = []; let default_timeout = 600; // 超时时间,默认10分钟 let count = 0, lastSent = 0, arrayIndex = 0, isRandom = true, waitCount = 10, signInContent = '签到'; let dmButtonSend, dmInput, divSetting, dataText1, dataText2, dataText3, dataText4, dataText5, spanApplyTip, rdCheckbox; initCss(); window.addEventListener("load", () => { waiters[waiters.length] = setInterval(pageFullyLoaded, 1500); initData(); window.arrayInfo = arrayInfo; signIn(); }); function openSetting() { divSetting.style.display = 'block'; } function closeSetting() { rdCheckbox.checked = isRandom; divSetting.style.display = 'none'; } function applySetting() { data1 = isNull(dataText1.value) ? [] : dataText1.value.split('|'); data2 = isNull(dataText2.value) ? [] : dataText2.value.split('|'); data3 = isNull(dataText3.value) ? [] : dataText3.value.split('|'); data4 = isNull(dataText4.value) ? [] : dataText4.value.split('|'); data5 = isNull(dataText5.value) ? [] : dataText5.value.split('|'); initData(); isRandom = rdCheckbox.checked; spanApplyTip.style.display = 'block'; setTimeout(() => { spanApplyTip.style.display = 'none'; }, 1500); } function initData() { data = []; data = data.concat(data1).concat(data2).concat(data3).concat(data4).concat(data5); // data = data2; !rdCheckbox || rdCheckbox.checked ? data = randomSort(data) : arrayIndex = 0; } function offOrOn() { let timeout = 0; if (timer) { console.log('=================> ' + new Date().toLocaleString() + ' 停止发送弹幕'); clearInterval(timer); timer = null; console.log('=================> ' + new Date().toLocaleString() + ' 停止成功!!'); dmButtonSend.style.background = 'rgba(217,157,27,1)'; dmButtonSend.textContent = '开始'; dmInput.removeAttribute("disabled"); } else { timeout = isNull(dmInput.value) ? default_timeout * 1000 : dmInput.value * 1000; danmu(); console.log('=================> ' + new Date().toLocaleString() + ' 开启定时器'); timer = setInterval(danmu, timeout); console.log('=================> ' + new Date().toLocaleString() + ' 开启成功!!'); dmButtonSend.style.background = '#ff0000'; dmButtonSend.textContent = '停止'; dmInput.setAttribute('disabled', 'disabled'); } } function danmu() { if (!data || data.length < 1) { alert('请任意在一个分组里输入一条弹幕'); return; } if (isRandom) { arrayIndex = Math.floor((Math.random() * data.length)); } send(data[arrayIndex], arrayIndex); ++arrayIndex; if (arrayIndex >= data.length) arrayIndex = 0; } function signIn() { let timestamp = new Date(new Date(new Date().setDate(new Date().getDate() + 1)).toDateString()).getTime() - getCurrentTimestamp(); console.log('=================> 设置第二天凌晨签到定时器【' + timestamp + '】'); setTimeout(() => { send(signInContent, 0); console.log('++++++++++++++++++++++> 完成签到发送,进入下一轮递归签到发送 <++++++++++++++++++++++'); signIn(); }, timestamp); } function send(msg, index) { let dmTextArea = document.getElementById('aside-area-vm').getElementsByClassName('chat-input border-box')[0]; if (!dmTextArea) { alert('找不到输入弹幕文本框,请尝试刷新页面'); return; } let btnSend = document.getElementsByClassName('bl-button live-skin-highlight-button-bg live-skin-button-text bl-button--primary bl-button--small')[0]; if (!btnSend) { alert('找不到发送按钮,请尝试刷新页面'); return; } // if (getCurrentTimestamp() - lastSent < 5000) { // setTimeout(() => send(msg, index), 5000); // console.log('++++++++++++++++++++++> 发送间隔少于5秒,进入递归处理 <++++++++++++++++++++++'); // } else { dmTextArea.value = msg; // 定义事件, 定义才可发送 dmTextArea.dispatchEvent(new Event('input', { "bubbles": true, "cancelable": true })); btnSend.click(); lastSent = getCurrentTimestamp(); ++count; console.log('=================> ' + new Date().toLocaleString() + ' 弹幕发送成功 ' + count + ' 次,第【' + index + '】条数据 === ' + msg); // } } function isNull(str) { if (!str || str == "") { return true; } let regu = "^[ ]+$"; let re = new RegExp(regu); return re.test(str); } function randomSort(arr) { for (let i = 0; i < arr.length; i++) { const rdIndex = Math.floor(Math.random() * arr.length) const temp = arr[i] arr[i] = arr[rdIndex] arr[rdIndex] = temp } return arr } function getCurrentTimestamp() { return new Date().getTime(); } function clearWaiters() { // console.log('--------------------> 清理Waiters,个数:' + waiters.length); for (let i = 0; i < waiters.length; i++) { clearInterval(waiters[i]); waiters[i] = null; } waiters = []; } function arrayInfo() { console.info(data); } function selectRandom() { // isRandom = rdCheckbox.checked; } function initCss() { let linkElement = document.createElement('link'); linkElement.rel = 'stylesheet'; linkElement.href = 'https://unpkg.com/[email protected]/lib/theme-chalk/index.css'; document.head.appendChild(linkElement); // 图标库 https://ionic.io/ionicons // let scriptElement = document.createElement('script'); // scriptElement.src = 'https://unpkg.com/[email protected]/dist/ionicons.js'; // document.head.appendChild(scriptElement); let customerStyle = document.createElement('style'); customerStyle.setAttribute('type', 'text/css'); customerStyle.innerHTML = '.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--mini.is-circle{padding:3px;}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-icon-close.is-circle{padding:5px;color:#ff0000;border:1px solid #ff0000;margin-left:20px;}.el-icon-check.is-circle{padding:5px;color:#0000ff;border:1px solid #0000ff;margin-left:20px;}.random-check{display:inline-block;}.random-check label{display:inline-block;vertical-align:middle;border:1px solid #bdc3c7;border-radius:60px;width:40px;height:18px;position:relative;transition:all .3s;}.random-check input{display:none;}.random-check label:before{width:14px;height:14px;content:"";display:inline-block;background-color:#bdc3c7;border-radius:100%;position:absolute;top:2px;left:4px;transition:all .3s;}.random-check :checked ~ label{background-color:#26b22b;border-color:#26b22b;}.random-check :checked ~ label:before{left:22px;background-color:#fff;}'; document.head.appendChild(customerStyle); } function pageFullyLoaded() { let divButton = document.getElementsByClassName('bottom-actions p-relative')[0]; if (!divButton) { console.error('没能找到发送按钮上层的div'); --waitCount; if (0 >= waitCount) { clearWaiters(); } return; } clearWaiters(); let divSettingTitle = document.createElement('div'); divSettingTitle.textContent = '弹幕设置'; divSettingTitle.style.textAlign = 'center'; divSettingTitle.style.fontSize = '16px'; divSettingTitle.style.fontWeight = '700'; divSettingTitle.style.color = '#1c5adc'; divSettingTitle.style.margin = '4px 0px 8px 0'; let divText1 = document.createElement('div'); divText1.textContent = '分组 1 :' divText1.style.fontSize = '14px'; divText1.style.paddingLeft = '2px'; divText1.style.color = '#12388d'; divText1.style.display = 'inline'; let divTip = document.createElement('div'); divTip.style.color = '#0b81cc'; divTip.style.marginLeft = '5px'; divTip.style.fontStyle = 'italic'; divTip.style.display = 'inline'; divTip.innerHTML = '任一分组内输入弹幕即可,多条用<span style="color:#dc6b07;margin:0 2px 0 4px;font-weight:700;font-style:normal;">竖线</span>分隔'; dataText1 = document.createElement('textarea'); dataText1.style.width = '98%'; dataText1.style.height = '100px'; dataText1.style.margin = '1px 0 4px 0'; dataText1.style.border = '0'; dataText1.style.resize = 'none'; dataText1.setAttribute('placeholder', '请输入弹幕,多条弹幕请用“|”分隔'); let divText2 = document.createElement('div'); divText2.textContent = '分组 2 :' divText2.style.fontSize = '14px'; divText2.style.paddingLeft = '2px'; divText2.style.color = '#12388d'; dataText2 = document.createElement('textarea'); dataText2.style.width = '98%'; dataText2.style.height = '100px'; dataText2.style.margin = '1px 0 4px 0'; dataText2.style.border = '0'; dataText2.style.resize = 'none'; dataText2.setAttribute('placeholder', '请输入弹幕,多条弹幕请用“|”分隔'); let divText3 = document.createElement('div'); divText3.textContent = '分组 3 :' divText3.style.fontSize = '14px'; divText3.style.paddingLeft = '2px'; divText3.style.color = '#12388d'; dataText3 = document.createElement('textarea'); dataText3.style.width = '98%'; dataText3.style.height = '100px'; dataText3.style.margin = '1px 0 4px 0'; dataText3.style.border = '0'; dataText3.style.resize = 'none'; dataText3.setAttribute('placeholder', '请输入弹幕,多条弹幕请用“|”分隔'); let divText4 = document.createElement('div'); divText4.textContent = '分组 4 :' divText4.style.fontSize = '14px'; divText4.style.paddingLeft = '2px'; divText4.style.color = '#12388d'; dataText4 = document.createElement('textarea'); dataText4.style.width = '98%'; dataText4.style.height = '100px'; dataText4.style.margin = '1px 0 4px 0'; dataText4.style.border = '0'; dataText4.style.resize = 'none'; dataText4.setAttribute('placeholder', '请输入弹幕,多条弹幕请用“|”分隔'); let divText5 = document.createElement('div'); divText5.textContent = '分组 5 :' divText5.style.fontSize = '14px'; divText5.style.paddingLeft = '2px'; divText5.style.color = '#12388d'; dataText5 = document.createElement('textarea'); dataText5.style.width = '98%'; dataText5.style.height = '100px'; dataText5.style.margin = '1px 0 4px 0'; dataText5.style.border = '0'; dataText5.style.resize = 'none'; dataText5.setAttribute('placeholder', '请输入弹幕,多条弹幕请用“|”分隔'); let descCheckbox = document.createElement('span'); descCheckbox.textContent = '随机'; descCheckbox.title = '将合并所有分组数据,从中随机选出一条发送'; descCheckbox.style.fontSize = '16px'; descCheckbox.style.verticalAlign = 'middle'; descCheckbox.style.marginRight = '4px'; descCheckbox.style.color = '#095ca2'; rdCheckbox = document.createElement('input'); rdCheckbox.type = 'checkbox'; rdCheckbox.id = 'rdmCheckbox'; rdCheckbox.checked = isRandom; rdCheckbox.addEventListener('click', selectRandom); let lblCheckbox = document.createElement('label'); lblCheckbox.setAttribute('for', 'rdmCheckbox'); let divCheckbox = document.createElement('div'); divCheckbox.classList.add('random-check'); divCheckbox.style.marginLeft = '10px'; divCheckbox.appendChild(descCheckbox); divCheckbox.appendChild(rdCheckbox); divCheckbox.appendChild(lblCheckbox); spanApplyTip = document.createElement('span'); spanApplyTip.textContent = '设置成功' spanApplyTip.style.fontSize = '16px'; spanApplyTip.style.color = '#128712'; spanApplyTip.style.display = 'none'; let divApplyTip = document.createElement('div'); divApplyTip.style.textAlign = 'center'; divApplyTip.style.display = 'inline-block'; divApplyTip.style.verticalAlign = 'middle'; divApplyTip.style.width = '34%'; divApplyTip.appendChild(spanApplyTip); let btnApplySetting = document.createElement('i'); btnApplySetting.setAttribute('title', '应用'); btnApplySetting.classList.add('el-button'); btnApplySetting.classList.add('el-icon-check'); btnApplySetting.classList.add('is-circle'); btnApplySetting.addEventListener('click', applySetting); let btnCloseSetting = document.createElement('i'); btnCloseSetting.setAttribute('title', '关闭'); btnCloseSetting.classList.add('el-button'); btnCloseSetting.classList.add('el-icon-close'); btnCloseSetting.classList.add('is-circle'); btnCloseSetting.addEventListener('click', closeSetting); let divSettingButton = document.createElement('div'); divSettingButton.style.display = 'inline-block'; divSettingButton.style.verticalAlign = 'middle'; divSettingButton.appendChild(btnApplySetting); divSettingButton.appendChild(btnCloseSetting); let divBottomContainer = document.createElement('div'); divBottomContainer.style.width = '100%'; divBottomContainer.style.height = '25px'; divBottomContainer.style.margin = '4px 0 8px 0'; // divBottomContainer.style.position = 'absolute'; // divBottomContainer.style.bottom = '0'; divBottomContainer.appendChild(divCheckbox); divBottomContainer.appendChild(divApplyTip); divBottomContainer.appendChild(divSettingButton); divSetting = document.createElement('div'); divSetting.style.backgroundColor = '#d4f2e0'; divSetting.style.borderRadius = '2px'; divSetting.style.width = '100%'; divSetting.style.height = '100%'; divSetting.style.overflowY = 'auto'; divSetting.style.position = 'absolute'; divSetting.style.left = '0'; divSetting.style.top = '0'; divSetting.style.zIndex = '999'; divSetting.style.display = 'none'; divSetting.appendChild(divSettingTitle) divSetting.appendChild(divText1); divSetting.appendChild(divTip); divSetting.appendChild(dataText1); divSetting.appendChild(divText2); divSetting.appendChild(dataText2); divSetting.appendChild(divText3); divSetting.appendChild(dataText3); divSetting.appendChild(divText4); divSetting.appendChild(dataText4); divSetting.appendChild(divText5); divSetting.appendChild(dataText5); divSetting.appendChild(divBottomContainer); let asideAreaVm = document.getElementById('aside-area-vm'); asideAreaVm.appendChild(divSetting); dmButtonSend = document.createElement('button'); dmButtonSend.textContent = '开始'; dmButtonSend.style.minWidth = '65px'; dmButtonSend.style.height = '24px'; dmButtonSend.style.fontSize = '12px'; dmButtonSend.style.borderRadius = '4px'; dmButtonSend.style.color = '#ffffff'; dmButtonSend.style.background = 'rgba(217,157,27,1)'; dmButtonSend.style.border = '0'; dmButtonSend.style.cursor = 'pointer'; //dmButtonSend.onclick = function() { alert('Hello world');} dmButtonSend.addEventListener('click', offOrOn); let beforeSpan = document.createElement('span'); beforeSpan.textContent = '每'; beforeSpan.style.color = '#ffffff'; beforeSpan.style.fontSize = '12px'; beforeSpan.style.marginLeft = '4px'; beforeSpan.style.backgroundColor = '#ec6c1b'; dmInput = document.createElement('input'); dmInput.value = default_timeout; dmInput.style.width = '25px'; dmInput.style.height = '15px'; dmInput.style.margin = '0 3px'; dmInput.style.border = '0'; dmInput.style.borderRadius = '3px'; dmInput.setAttribute('oninput', "this.value = this.value.replace(/[^0-9]/g, '')"); let afterSpan = document.createElement('span'); afterSpan.textContent = '秒发送'; afterSpan.style.color = '#ffffff'; afterSpan.style.fontSize = '12px'; afterSpan.style.backgroundColor = '#ec6c1b'; afterSpan.style.marginRight = '4px'; let iElement = document.createElement('i'); iElement.classList.add('el-icon-setting'); let btnSetting = document.createElement('button'); btnSetting.title = '设置'; btnSetting.classList.add('el-button'); btnSetting.classList.add('el-button--mini'); btnSetting.classList.add('is-circle'); btnSetting.addEventListener('click', openSetting); btnSetting.appendChild(iElement); // let btnSetting = document.createElement('ion-icon'); // btnSetting.setAttribute('name', 'settings-sharp'); // btnSetting.classList.add('el-button'); // btnSetting.classList.add('el-button--mini'); // btnSetting.classList.add('is-circle'); // btnSetting.addEventListener('click', openSetting); let div = document.createElement('div'); div.style.position = 'absolute'; div.appendChild(dmButtonSend); div.appendChild(beforeSpan); div.appendChild(dmInput); div.appendChild(afterSpan); div.appendChild(btnSetting); divButton.appendChild(div); } })();