div plaintext-only属性,点击按钮,插入不可编辑标签

本文介绍如何在HTML内容中利用Vue.js实现点击按钮动态插入一个带有plaintext-only属性的不可编辑div元素,使得用户只能查看而不能修改其内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
 <el-button @click.stop="pushTag()">插入的内容</el-button>
  <div
     :key="index"
          ref="PreviewContent"
          contenteditable="plaintext-only"
          @click="changeIndex(index)"
          class="content"
          :class="activeIndex == index? 'active':''"
        ></div>
</template>
<script>
export default {
	data(){},
	methods:{
		pushTag(type,nodeid){}{
			this.insertHtmlAtCaret(`插入的内容`);
		}//光标插入核心方法
		insertHtmlAtCaret(html) {
		      if (window.getSelection) {
		        var selection = getSelection();
		        var par = false;
		        var theChild = selection.anchorNode.parentNode;
		        //判断光标是否在输入框内
		        if (
		          selection.anchorNode.parentNode.className == "content active" ||
		          selection.anchorNode.className == "content active"
		        ) {
		          var sel = window.getSelection();
		          var range = sel.getRangeAt(0);
		          // IE9 and non-IE
		          if (sel.getRangeAt && sel.rangeCount) {
		            var el = document.createElement("span");
		            var ed = document.createTextNode(" ");
		            var eds = document.createTextNode(" ");
		            el.innerHTML = html;
		            el.setAttribute("contenteditable", false);//插入的span标签不可编辑,根据需要
		            el.setAttribute("class", "inner")var frag = document.createDocumentFragment(),
		              node,
		              lastNode;
		            node = el;
		            frag.appendChild(ed);
		            frag.appendChild(node);
		            lastNode = frag.appendChild(eds);
		            range.insertNode(frag);
		
		            if (lastNode) {
		              range = range.cloneRange();
		              range.setStartAfter(lastNode);
		              range.collapse(true);
		              sel.removeAllRanges();
		              sel.addRange(range);
		            }
		          }
		        } else if (document.selection && document.selection.type != "Control") {
		          // IE < 9
		          document.selection.createRange().pasteHTML(html);
		        }
		        var textContent = document.querySelector(".active").innerHTML; 
      }
    },
	}
	
};
</script>
//method方法

点击光标定到内容设置,点击上面的按钮会将按钮插入到光标定位的位置,也可以输入文字
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值