位置: 编程技术 - 正文

JavaScript DOM 学习第二章 编辑文本(js中dom的用法)

编辑:rootadmin
例子 这个页面就是个例子。点击一个段落,编辑,然后点Ready。你的修改就会呈现。 问题 遇到的第一个问题是:我想用文本框作为编辑区域。一开始我却把内容放不进文本框去。读者发现Mozilla的一个警告说是只有在文本框放置到文档之后才能设置它的value。 另外,在Mozilla下面内容包装的不是很好。我试了好几种wrap参数,但是结果都不是很好。 最严重的问题就是把修改后的内容发回服务器,这是几乎所有的CMS系统都要做的。读者给了我很多高明巧妙的建议。然而因为不能通过JavaScript完成,所以我也不能提供解决办法。所以也请您不要发邮件告诉你找到了办法:那也许可行,但是我只想要纯JavaScript的不需要服务器端代码的方法。 脚本 解释 我们设置一个editing标志为false。这用来显示用户是否正在编辑段落。当然初始是没有。 var editing=false; 创建一个按钮 然后我们创建一个Radey按钮,后面会需要很多次。这需要一些高级脚本技术,所以先做一些对象检测: 如果是现代浏览器,则创建按钮: 他的文本是: 把这个文本添加到按钮上: 然后添加一个onclick事件处理程序: 现在按钮就存储在butt里面,需要的时候我们就可以直接引用。 将P转为文本框 稍后我们会为整个页面定义一个onclick事件。所有的这些事件都会发送到catchIt()函数。 首先检测用户是否正常编辑段落,如果是,结束函数: 然后是支持性检测: 然后寻找事件的源: 现在我们有了事件的源,但是有个问题是Mozilla会认为文本节点是源(而不是我们需要的P节点)。所以如果节点不是标签(nodeType不是1),我们需要向上遍历DOM树: 现在我们以一个标签结束。如果这是一个文本框的标签那么用户点击之后就可以编辑了。如果是一个链接的标签那么用户点击之后应该还是作为一个链接来反映的。这两种情况下我们就不需要这个函数了: 我们需要再一次的向上遍历DOM树直到找到P标签或者HTML标签: 如果是HTML标签那么表示用户在段落之外点击的,就结束函数: 经过这个检测我们最终确定用户点击的是我们想要编辑的段落。然后保存段落的innerHTML: 创建一个新的TEXTAREA然后保存: 然后找到段落的父节点:

现在就成了这样:

z | --------------------------------------- | | | | | [more] y(TEXTAREA) butt(BUTTON) P [more]

然后删除段落。现在看起来就好像是文本框和按钮代替了之前的段落。

直到现在,插入文本框之后,我们才能把段落的innerHTML放置在文本框内。Mozilla里面不支持在插入之前给文本框内添加内容。

y.value = x;

为了用户方便给文本框焦点:

y.focus();

然后设置editing为true。

editing = true;}将文本框转换为P 当用户点击Ready按钮,就应该反过来了。这个由saveEdit()函数来完成。 function saveEdit() {得到TEXTAREA(这里假设整个页面只有一个TEXTAREA): var area = document.getElementsByTagName('TEXTAREA')[0]创建一个新的段落并保存: 找到文本框的父元素:新的段落需要添加到那去: 将文本框的值存储在新的段落里: 然后把新的段落插入在文本框之前: 移除文本框: 移除Ready按钮(同样的,假设页面只有一个按钮): 然后设置editing为false:用户停止编辑: 事件 在函数之外,设置一个整个页面的onclick事件: 翻译地址: 转载请保留以下信息 作者:北玉(tw:@rehawk)

推荐整理分享JavaScript DOM 学习第二章 编辑文本(js中dom的用法),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript DOM 学习第二章 编辑文本(js中dom的用法)

文章相关热门搜索词:javascriptdom编程,javascript的dom,javascriptdom编程,js domcontentloaded,javascript中dom的含义,js dom操作方法,javascript的dom,javascript中dom的含义,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript DOM 学习第三章 内容表格 如果你也想这么做,那么你还需要我的getElementByTagNames()函数。functioncreateTOC(){vary=document.createElement('div');y.id='innertoc';vara=y.appendChild(document.createElement('span

JavaScript DOM学习第四章 getElementByTagNames getElementByTagNames(注意是复数的names)会获得一些tag的元素,然后按照他们的顺序保存在一个数组中。这非常的有用,比如在上一章的TOCScript中,就需要

JavaScript DOM 学习第五章 表单简介 因为每一个表单的检测项都不同,所以我也不能给你一个万能的代码。你需要用我在这一章介绍的这些元素构建自己的检测函数。我在后面一张还有一

标签: js中dom的用法

本文链接地址:https://www.jiuchutong.com/biancheng/381850.html 转载请保留说明!

上一篇:JavaScript DOM学习第一章 W3C DOM简介(js domcontentloaded)

下一篇:JavaScript DOM 学习第三章 内容表格(javascript的dom)

  • 不征税收入计入应纳税所得额吗
  • 贸易公司开发票进项跟销项不符合怎么办
  • 新公司第一年要做亏
  • 医疗设备的折旧年限是多少年
  • 借已交税金贷银行存款
  • 金蝶以前年度损益调整属于哪类科目
  • 一般纳税企业可以变更小微企业吗
  • 房地产企业开发间接费用包括哪些
  • 企业印花税算法
  • 支付境外咨询费代扣代缴企业所得税
  • 今年补缴去年的税汇算清缴吗
  • 销售方未抄报税的专票购买方能抵扣吗?
  • 所得税年报调增调减
  • 认证专票税务处理怎么做?
  • 收入可以用收据入账吗
  • 车票进项税可以跨年抵扣吗
  • 政府装修补贴政策
  • 没票的购进能入成本吗
  • 住房公积金扣除标准为每月
  • 公司个人股份转让需要缴税吗
  • 合并报表长投和所有者权益抵消的原理
  • 公寓收费标准
  • win11的09累积更新
  • 企业年金缴纳标准400什么意思啊
  • html转xhtml
  • 企业如何做账报税流程
  • 记账软件的作用
  • 加油费属于什么费用类别的
  • uniapp使用高德地图直接进行导航
  • 2021前端校招笔试
  • Apache PHP MySql安装配置图文教程
  • php 方括号
  • 新制度设置了应缴财政款科目原制度设置了什么科目
  • 建筑业成本核算流程
  • jsp页面构成
  • 赠送礼品账务处理会计分录
  • 筹办分公司
  • 存货暂估入账会计分录
  • excel随机抽取n行数据
  • 织梦怎么调用当前栏目下的文章
  • 合同补充协议印花税怎么交
  • sqlserver数据库和mysql区别
  • 增值税纳税申报类型有哪些
  • 增值税留抵税额借贷方向
  • 销售原材料的差价怎么算
  • 代开运输发票会不会造成重复征税?
  • 疫情期间增值税减免政策截止时间
  • 实收资本需要明细科目吗
  • 可供出售金融资产名词解释
  • 研发费用加计扣除的条件
  • 政府对失业人员补贴
  • 费用票可以抵扣多少企业所得税
  • 待摊费用年底能够有余额么
  • 小规模纳税人所得税优惠政策2023
  • Mysql 数据库 拷贝 原文件
  • mysql实现分页查询
  • sql必知必会第四版
  • centos6.5下mysql 5.7.19 安装配置方法
  • CentOS6.9+Mysql5.7.18源码安装详细教程
  • win7系统怎么把桌面文件放到d盘
  • services.exe修改注册表
  • go进程管理
  • windows7桌面右击
  • WIN7如何关闭自动关机
  • nodejs阿里云
  • cocos2dx运行原理
  • qt creator kit
  • javascript HTML5 Canvas实现圆盘抽奖功能
  • web开发css
  • 怎么查看u盘有没有传输过数据
  • node.js详解
  • python操作json字符串
  • 安卓万能插件
  • 航天金税盘客服电话苏州
  • 天津怎么网上交电费
  • 通用机油防伪查询
  • 党和国家为什么重视三农问题
  • 个体诊所可以申请医保报销吗
  • 济宁市税务局官网名称
  • 房地产对外投资契税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设