js 创建自定义标签

js 创建自定义标签html head metacharset utf 8 title Angular2 实例 菜鸟教程 runoob com title metacharset utf 8 head body script classPopUpIn constructor script body html

原理: 自定义标签是通过定义class类继承HTMLElement实现的, class特性是ECMAScript6中引入的特性, ES6以下没有这个特性
class 不是新的对象继承模型,它只是原型链的语法糖表现形式。可以通过改写适配ES6以下特性

<html> <head> <meta charset="utf-8"> <title>Angular 2 实例 - 菜鸟教程(runoob.com)</title> </head> <body> <!-- 自定义标签必须在class之前, 否则类中的getAttribute无法获取到自定义标签的值;如果放在class后面,则不需要带任何属性,就算带了也获取不了 --> <popup-info img="1.gif" text1="haha"></popup-info> <popup-info img="1.gif" text1="aaaaa"></popup-info> <script> class PopUpInfo extends HTMLElement { 
    constructor () { 
    super(); // 在此定义自定义标签 我顶一个icon和text并列的 // Create a shadow root let shadow = this.attachShadow({ 
   mode: 'closed'}); // 创建我们需要的标签 let wrapper = document.createElement("div"); let iconBox = document.createElement("div"); let textBox = document.createElement("div"); // 为标签添加样式 wrapper.setAttribute("class","wrapper"); iconBox.setAttribute("class","icon"); textBox.setAttribute("class","text"); let text = this.getAttribute("text1"); // 获取标签里面传递的值 textBox.textContent = "text"; let imgUrl; if(this.hasAttribute("img")) { 
    imgUrl = this.getAttribute("img"); } else { 
    imgUrl = "default.gif"; // 设置一个默认图片 } var img = document.createElement("img"); img.src = imgUrl; iconBox.appendChild(img); // 书写样式 var style = document.createElement("style"); let lStyleStr = ".wrapper { display: flex; justify-content: center; align-items: center; width: 100%; height: 50px;}" lStyleStr += ".icon {margin-right: 10px; width: 50px; height: 50px;}" lStyleStr += ".icon img { width: 100%; height: 100%;}" lStyleStr += ".text { flex: 1; font-size: 14px; color: #333; line-height: 50px;}" style.textContent = lStyleStr; // 将样式和dom元素挂载到页面 shadow.appendChild(style); shadow.appendChild(wrapper); wrapper.appendChild(iconBox); wrapper.appendChild(textBox); } } customElements.define('popup-info', PopUpInfo); </script> </body> </html> 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222277.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:09
下一篇 2026年3月17日 下午4:09


相关推荐

  • 大疆网上测评题库_【大疆在线测试有几套题啊?】-看准网

    大疆网上测评题库_【大疆在线测试有几套题啊?】-看准网写面经,攒人品。大疆服务运营培训生。1.大疆网上笔试题(比较独创,很有趣,也有歇跟大疆相关的题,要比较熟悉大疆),笔试过后,有岗位笔试作业。2.大疆服务运营培训生笔试作业题目。三道大题,开放性题目,专业和岗位相关,涉及报告类题目。规定期限内提交,审核,通过后进入面试环节。3.一面,微信视频面试。提前约定时间,到点准时打来,直奔主题。自我介绍,针对个人经历开始提问,最后会用英文简单问答一下看英语能力…

    2022年6月18日
    68
  • pandas fillna详解

    pandas fillna详解pandas中补全nan具体的参数Series.fillna(self,value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)[source]参数: value:scalar,dict,Series,orDataFrameValuetouset…

    2022年8月12日
    16
  • NOTIFYICONDATA 的使用方法

    NOTIFYICONDATA 的使用方法NOTIFYICONDA 结构主要用来向将窗口最小化到任务栏托盘区域 发送消息 接收消息 Shell NotifyIcon 函数说明 函数格式 BOOLShell NotifyIcon DWORDdwMessa PNOTIFYICOND 参数说明 dwMessage 为输入参数 传递发送的消息 表明要执行的操作 可选的值如下 NIM ADD

    2026年3月17日
    2
  • 智谱AI重磅推出Zread:一键将GitHub项目转为清晰使用手册,开发者效率神器!

    智谱AI重磅推出Zread:一键将GitHub项目转为清晰使用手册,开发者效率神器!

    2026年3月12日
    2
  • 创造与魔法情侣怎么一起玩_jquery设置多个css样式

    创造与魔法情侣怎么一起玩_jquery设置多个css样式CSS魔法堂:一起玩透伪元素和Content属性

    2022年4月20日
    39
  • Pycharm插件推荐

    Pycharm插件推荐相信对于不少的 Python 程序员们都是用 Pycharm 作为开发时候的 IDE 来使用的 今天小编来分享几个好用到爆的 Pycharm 插件 在安装上之后 你的编程效率 工作效率都能够得到极大地提升 安装方法插件的安装方法一点都不难打开 file settings plugins 在右侧的文本框中输入想要查看的插件名称 在下方就会罗列出已经安装的相关的插件找到我们所需要的对应插件之后 点击 install 即可完成下载 然后重启一下 Pycharm 即可接下来我们来看一下那些广受欢迎的 Pyc

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号