当前位置: 首页 > news >正文

怎样用javascript操作ftb编辑区内容

想法源于freetextbox的使用过程。
在我用ftb时,很想在客户端用js对ftb的编辑框进行操作,在使用ftb的页面中查看了dom树,发现ftb服务器端控件给客户端发过来的只有三个div,分别对应 :编辑模式,html模式和预览模式(仅限于编辑区)代码如下:
1 None.gif < div  id ="content_designEditorArea"  style ="clear:both;padding-top:1px;" >
2 None.gif         < iframe  id ="content_designEditor"  style ="padding: 0px; width:598px; height: 349px;"  src ="about:blank"  class ="content_DesignBox" ></ iframe >
3 None.gif     </ div >
4 None.gif     < div  id ="content_htmlEditorArea"  style ="clear:both;display:none;padding-bottom:1px;" >
5 None.gif         < textarea  id ="content"  name ="content"  disabled ="disabled"  style ="padding: 0px; width:600px; height: 350px;"  class ="content_HtmlBox" > 3 </ textarea >
6 None.gif     </ div >
7 None.gif     < div  id ="content_previewPaneArea"  style ="clear:both;display:none;padding-bottom:1px;" >
8 None.gif         < iframe  id ="content_previewPane"  style ="padding: 0px; width:598px; height: 349px"  src ="about:blank"  class ="content_DesignBox" ></ iframe >
9 None.gif     </ div >
看到代码,我很高兴,因为有比较熟悉的id为content的textarea,思路马上清晰了,直接用js往textarea的innerText属性加内容就可以了不是(你真是太有才了)。
马上行动,代码如下:
None.gif dot.gif
None.gifcontent.innerText
= value;
None.gifdot.gif
结果很令我意外,我发现我能看到的ftb编辑区依然空空荡荡,又查dom树,发现content也就是html模式下的编辑区的确已经有了我需要的内容,可是回到普通编辑模式后,不但普通编辑模式没有内容,连html模式的编辑框里的内容也被删了;换个思路,我在普通编辑区手动打入内容,问题发现了,每当我在普通编辑区打入一个字,通过dom树我看到html编辑模式下的区域也跟着改变一下,而我在html模式下编辑时,普通模式的编辑区是不会跟着改变的,这就是为什么改了html模式下的内容,调整回普通编辑模式时内容消失的原因。
      既然问题找到,看来要换换思路了---对普通编辑模式下的id为 content_htmlEditorArea的iframe进行处理了,进行的很顺利,问题解决了,代码如下:
None.gif dot.gifcontent_designEditor.document.body.innerHTML = value;dot.gif
上面的代码告诉我们一个页面里的iframe,不论它的src有没有值,它都相当与一个新的document。

转载于:https://www.cnblogs.com/ddr888/archive/2007/03/03/662575.html

相关文章:

  • 局域网防雷电***实用解决方案
  • 系统不显示桌面的原因和解决方法
  • 让Windows下的驱动乖乖在Linux中安家!
  • Linux下文件和目录的颜色代表的含义
  • 哈哈,毒霸可以直接关闭自动播放功能,真是太棒了
  • cpu
  • TCP/IP协议
  • 报道!证明还活着。。。
  • c# 日期格式與大小判斷
  • UltraEdit 语法高亮 wordfile for Velocity / NVelocity
  • ARP(地址转换协议)的使用技巧
  • 明天要做的事情
  • 反思房地产行业的CRM实践 颠覆传统CRM思想
  • 什么是虚拟内存
  • 网吧母盘制作其本流程
  • [译] 怎样写一个基础的编译器
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Java IO学习笔记一
  • k8s 面向应用开发者的基础命令
  • mysql外键的使用
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Vue 2.3、2.4 知识点小结
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 分类模型——Logistics Regression
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 应用生命周期终极 DevOps 工具包
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 再次简单明了总结flex布局,一看就懂...
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 移动端高清、多屏适配方案
  • ​2021半年盘点,不想你错过的重磅新书
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​比特币大跌的 2 个原因
  • ​插件化DPI在商用WIFI中的价值
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • $jQuery 重写Alert样式方法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (6)STL算法之转换
  • (floyd+补集) poj 3275
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (南京观海微电子)——COF介绍
  • (转)Sublime Text3配置Lua运行环境
  • .Net CF下精确的计时器
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Framework与.NET Framework SDK有什么不同?