1 line
6.2 KiB
JavaScript
1 line
6.2 KiB
JavaScript
document.addEventListener("DOMContentLoaded",()=>{class t extends HTMLElement{constructor(){super(),this.innerHTML=`\n\t\t\t\t<div class="joe_detail__article-mtitle">\n\t\t\t\t\t<span class="text">\n\t\t\t\t\t\t${this.getAttribute("title")||"默认标题"}\n\t\t\t\t\t</span>\n\t\t\t\t</div>`}}window.customElements.define("joe-mtitle",t);class e extends HTMLElement{constructor(){super(),this.options={src:this.getAttribute("src"),player:this.getAttribute("player")},this.render()}render(){this.options.src?this.innerHTML=`<iframe allowfullscreen="true" class="joe_detail__article-player" src="${this.options.player+this.options.src}"></iframe>`:this.innerHTML="播放地址未填写!"}}window.customElements.define("joe-dplayer",e);class i extends HTMLElement{constructor(){super(),this.bvid=this.getAttribute("bvid"),this.render()}render(){this.bvid?this.innerHTML=`<iframe allowfullscreen="true" class="joe_detail__article-player" src="//player.bilibili.com/player.html?bvid=${this.bvid}"></iframe>`:this.innerHTML="Bvid未填写!"}}window.customElements.define("joe-bilibili",i);class s extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}render(){this.options.id?this.innerHTML=`<iframe style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="86px" src="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></iframe>`:this.innerHTML="网易云歌曲ID未填写!"}}window.customElements.define("joe-music",s);class n extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<iframe style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="450px" src="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></iframe>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-mlist",n);class o extends HTMLElement{constructor(){super(),this.options={icon:this.getAttribute("icon")||"",color:this.getAttribute("color")||"#ff6800",href:this.getAttribute("href")||"#",radius:this.getAttribute("radius")||"17.5px",content:this.getAttribute("content")||"多彩按钮"},this.innerHTML=`\n\t\t\t\t<a class="joe_detail__article-abtn" style="background: ${this.options.color}; border-radius: ${this.options.radius}" href="${this.options.href}" target="_blank" rel="noopener noreferrer nofollow">\n\t\t\t\t\t<span class="icon"><i class="${this.options.icon} fa"></i></span><span class="content">${this.options.content}</span>\n\t\t\t\t</a>\n\t\t\t`}}window.customElements.define("joe-abtn",o);class r extends HTMLElement{constructor(){super(),this.options={icon:this.getAttribute("icon")||"fa-download",href:this.getAttribute("href")||"#",type:/^secondary$|^success$|^warning$|^error$|^info$/.test(this.getAttribute("type"))?this.getAttribute("type"):"secondary",content:this.getAttribute("content")||"标签按钮"},this.innerHTML=`\n\t\t\t\t<a class="joe_detail__article-anote ${this.options.type}" href="${this.options.href}" target="_blank" rel="noopener noreferrer nofollow">\n\t\t\t\t\t<span class="icon"><i class="fa ${this.options.icon}"></i></span><span class="content">${this.options.content}</span>\n\t\t\t\t</a>\n\t\t\t`}}window.customElements.define("joe-anote",r);class a extends HTMLElement{constructor(){super(),this.startColor=this.getAttribute("startColor")||"#ff6c6c",this.endColor=this.getAttribute("endColor")||"#1989fa",this.innerHTML=`\n\t\t\t\t<div class="joe_detail__article-dotted" style="background-image: repeating-linear-gradient(-45deg, ${this.startColor} 0, ${this.startColor} 20%, transparent 0, transparent 25%, ${this.endColor} 0, ${this.endColor} 45%, transparent 0, transparent 50%)"></div>\n\t\t\t`}}window.customElements.define("joe-dotted",a);class l extends HTMLElement{constructor(){super(),this.render()}render(){this.innerHTML='<div class="joe_detail__article-hide">此处内容作者设置了 <i>回复</i> 可见</div>',this.$button=this.querySelector("i");const t=document.querySelector(".joe_comment"),e=document.querySelector(".joe_header");t&&e&&this.$button.addEventListener("click",()=>{const i=t.offsetTop-e.offsetHeight-15;window.scrollTo({top:i,behavior:"smooth"})})}}window.customElements.define("joe-hide",l);class c extends HTMLElement{constructor(){super(),this.options={text:this.getAttribute("text")||"默认文本",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"点击复制"},this.render()}get template(){return`<span class="joe_detail__article-copy">${this.options.content}</span>`}render(){this.innerHTML=this.template,this.event()}event(){this.$copy=this.querySelector(".joe_detail__article-copy"),new ClipboardJS(this.$copy,{text:()=>this.options.text}).on("success",()=>Qmsg.success("复制成功!"))}}window.customElements.define("joe-copy",c);class d extends HTMLElement{constructor(){super(),this.options={type:/^success$|^info$|^warning$|^error$/.test(this.getAttribute("type"))?this.getAttribute("type"):"info",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"提示内容"},this.render()}get template(){return`\n\t\t\t\t<div class="joe_detail__article-message ${this.options.type}">\n\t\t\t\t\t<div class="icon"></div>\n\t\t\t\t\t<div class="content">${this.options.content}</div>\n\t\t\t\t</div>\n\t\t\t`}render(){this.innerHTML=this.template}}window.customElements.define("joe-message",d);class h extends HTMLElement{constructor(){super(),this.options={width:this.getAttribute("width")||"100%",label:this.getAttribute("label")||"默认标题",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"默认内容"},this.render()}get template(){return`\n <div class="joe_detail__article-card" style="width: ${this.options.width}">\n <div class="title">${this.options.label}</div>\n <div class="content">${this.options.content}</div>\n </div>\n `}render(){this.innerHTML=this.template}}window.customElements.define("joe-card",h)}); |