使用原生js自定义内置标签

使用原生js自定义内置标签

  1. 效果图

  2. 代码
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <article contenteditable="" id="textbox">
            我是文字
        </article>
    
        <p is="word-count"></p>
    </body>
    <script>
        class WordCount extends HTMLParagraphElement {
            constructor() {
                super();
    
                var wc = document.getElementById("textbox");
    
                function countWords(node) {
                    var text = node.innerText || node.textContent
                    console.log(text, text.length)
                    return text.length;
                }
                var count = ‘字数: ‘ + countWords(wc);
    
                // 创建影子节点
                var shadow = this.attachShadow({ mode: ‘open‘ });
    
                // 创建要给span标签,展示文字个数
                var text = document.createElement(‘span‘);
                text.setAttribute(‘class‘, ‘text‘);
                text.textContent = count;
    
                var style = document.createElement(‘style‘);
                style.textContent =
                `
                    .text{
                        color: green;
                        font-size: 25px;
                    }
                `
    
                // 将文字添加到影子节点中
                shadow.appendChild(style);
                shadow.appendChild(text);
    
                // Update count when element content changes
                setInterval(function () {
                    var count = ‘字数: ‘ + countWords(wc);
                    text.textContent = count;
                }, 200)
    
            }
        }
    
        // Define the new element
        customElements.define(‘word-count‘, WordCount, { extends: ‘p‘ });
    
    </script>
    
    </html>

原文地址:https://www.cnblogs.com/ye-hcj/p/10352274.html

时间: 2024-08-02 22:08:52

使用原生js自定义内置标签的相关文章

学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

ThinkPHP中的内置标签

ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于require或include) 基本语法: <include?file="模板文件名"?/> 特别注意:include标签中模板文件的路径是基于项目的入口文件(index.php)位置. 案例:实现项目首页功能 ① 在View视图模板中,创建一个Public文件夹,作为公用文件夹

Hexo 添加自定义的内置标签

灵感 想设计一个记录自已骑行的页面,显示时间.地点.路线图等信息.方便以后做一些留念.定位想实现下面类似的效果.参考:<特效>      实现方案也比较简单,反键查看源码.直接Copy,在加之改造即可.下面所述的方式是怎么提高代码的复用性.(内置标签) 简单实现 查看源码发现大致结构代码如下: <div class="location"> <i class="location-icon" style="opacity: 1;

django中模板变量与内置标签以及过滤器

本文参考 官方文档 . 一  模板变量 格式: {{ variable_name }} variable_name   命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_name后面可以跟dot  .  以此来访问变量的属性.查询顺序: 字典查询 属性或者方法查询: 若为方法查询,则要求该方法不需要传入任何参数.调用该方法后,会将该方法返回的结果赋予该变量. 数字索引查询 二  内置标签 格式: {% tag %} 1  block  定义一个可以被子模板覆盖的区域

内置标签[2]

一.遍历循环 ThinkPHP 内置标签提供了 Volist 标签.Foreach 标签和 For 标签. 在 Home/controller/UserController.class.php 中插入一下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user = M('User'); 4 $this->assign('data',$user->select()); 5 $this-&

内置标签[1]

ThinkPHP 模版中的内置标签,所谓内置标签就是模版引擎 提供的一组可以完成控制.循环和判断功能的类似 HTML 语法的标签. 一. 判断比较 ThinkPHP 内置了 IF 标签用于在模版中进行条件判断. 首先在  Home/controller/UserController.class.php  内插入以下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user='蜡笔小新';

Jsp的内置标签和jstl标签

1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %> --%> <jsp:forward page="/forward2.jsp"> <jsp:param value=

JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标签及文本 2. 脚本:写JAVA代码,<% %> 3. 表达式:用于输出变量及表达式,<%= %> 4. 注释:分为三种 a) <!-- --> :JSP翻译成Servlet时也将进行翻译.页面中也有. b) <% /*.......*/ %>:JSP翻译成Se

JavaScript原生函数(内置函数)

1.JavaScript原生函数(内置函数) JavaScript原生函数(内置函数)有: String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() 2.创建内置函数 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> &l