1.
或者  标签崩溃问题

解决方法 HTMLElemen类中

var words = this._getWords();

if (words == null && (!this._children || this._children.length == 0))

return false;

if (words) {

for (var i = 0, n = words.length; i < n; i++) {

out.push(words[i]);

}

}

if (this._children)

this._children.forEach(function (o, index, array) {

var _style = o._style;

if(_style)

{

_style._enableLayout && _style._enableLayout() && o._addToLayout(out);

}

else

{

o._addToLayout &&  o._addToLayout(out);

}

});

return true;

}

添加了

if(_style)

{

_style._enableLayout && _style._enableLayout() && o._addToLayout(out);

}

else

{

o._addToLayout &&  o._addToLayout(out);

} 这个保护

2.富文本超链接无法换行 workLines中索引i没有初始化为0

workLines(wordList, g, recList) {

var cssStyle = this.style;

var hasLine;

hasLine = cssStyle.textDecoration != "none";

var i = 0, len;

len = wordList.length;

var tStartWord;

tStartWord = wordList[i];

var tEndWord;

tEndWord = tStartWord;

if (!tStartWord)

return;

var tword;

for (i = 1; i < len; i++) {

tword = wordList[i];

if (tword.y != tStartWord.y) {

this.createOneLine(tStartWord, tEndWord, hasLine, g, recList);

tStartWord = tword;

tEndWord = tword;

}

else {

tEndWord = tword;

}

}

this.createOneLine(tStartWord, tEndWord, hasLine, g, recList);

}

3. 超链接的区域无法支持鼠标事件的mouseover和 mouseout 因此可以扩展一下

第一步 修改此类:

class HTMLHitRect {

constructor() {

this.rec = new Laya.Rectangle();

this.isMouseOver = false;

this.reset();

}

reset() {

this.rec.reset();

this.href = null;

this.isMouseOver = false;

return this;

}

getIsMouseOver()

{

return this.isMouseOver;

}

setIsMouseOver(val)

{

this.isMouseOver = val;

}

recover() {

Laya.Pool.recover("HTMLHitRect", this.reset());

}

static create() {

return Laya.Pool.getItemByClass("HTMLHitRect", HTMLHitRect);

}

}

第二步 class HTMLDivElement 构造中监听一下

this.on(Laya.Event.MOUSE_OVER, this, this._onMouseOver);

this.on(Laya.Event.MOUSE_OUT, this, this._onMouseOut);

this.on(Laya.Event.MOUSE_MOVE, this, this._onMouseMove);

增加如下3个方法

_onMouseOver()

{

var tX = this.mouseX;

var tY = this.mouseY;

var i, len;

var tHit;

len = this._recList.length;

for (i = 0; i < len; i++) {

tHit = this._recList[i];

if (tHit.rec.contains(tX, tY)) {

tHit.setIsMouseOver(true);

this.event("HREF_MOUSE_OVER", [tHit.href]);

}

}

}

_onMouseMove()

{

var tX = this.mouseX;

var tY = this.mouseY;

var i, len;

var tHit;

len = this._recList.length;

for (i = 0; i < len; i++) {

tHit = this._recList[i];

if (tHit.rec.contains(tX, tY)) {

if(!tHit.getIsMouseOver())

{

tHit.setIsMouseOver(true);

this.event("HREF_MOUSE_OVER", [tHit.href]);

}

}

else

{

if(tHit.getIsMouseOver())

{

tHit.setIsMouseOver(false);

this.event("HREF_MOUSE_OUT", [tHit.href]);

}

}

}

}

_onMouseOut()

{

var tX = this.mouseX;

var tY = this.mouseY;

var i, len;

var tHit;

len = this._recList.length;

for (i = 0; i < len; i++) {

tHit = this._recList[i];

if (tHit.getIsMouseOver() && !tHit.rec.contains(tX, tY)) {

tHit.setIsMouseOver(false);

this.event("HREF_MOUSE_OUT", [tHit.href]);

}

}

}

html超链接怎么换行,富文本过程中我遇到的问题以及解决方法(超链接换行以及无法接收超链接鼠标事件以及br或者nbsp;标签会崩溃报错的问题)...相关推荐

  1. Storm编译打包过程中遇到的一些问题及解决方法

    Storm编译打包过程中遇到的一些问题及解决方法 参考文章: (1)Storm编译打包过程中遇到的一些问题及解决方法 (2)https://www.cnblogs.com/panfeng412/p/s ...

  2. Ghost过程中出现GHOSTERR.TXT文件的解决方法

    强文:Ghost过程中出现GHOSTERR.TXT文件的解决方法 注:这是篇绝强的文章,作者不明,在好几个老论坛都有转载,反应很热烈,给大家共享一下小人物,大博客0Qo-GUu9F+rR :p$gY& ...

  3. mysql安装过程中failed_mysql安装失败原因和解决方法

    作者:CWS_chen 转载自https://blog.csdn.net/ mysql数据库安装不了了!mysql最后一步安装不上!mysql就是安装不上!是不是很头疼,很伤脑筋,现在大家不用着急了, ...

  4. vim编辑器的基本操作以及编译过程中常见的错误和简单解决方法

    1.正常模式:对文本内容只能进行浏览,不可修改.在任何模式下按下Esc键就可返回正常模式 2.编辑模式:可以向文本中添加删除修改内容,直接输入i键即可进入编辑模式 3.退出vim:输入Esc键返回正常 ...

  5. Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法

    一.前言 这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发 ...

  6. Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法...

    这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发有点像,渐 ...

  7. SQL Server2000安装过程中出现“挂起”操作的解决方法

    在Windows中安装SQL Server2000时,常常会遇到这样的情况:在选择安装到本地计算机继续进行下一步操作时,会出现如下的提示信息"以前的某个程序安装已在安装的计算机上创建挂起的文 ...

  8. 微信小程序富文本图片宽度自适应以及文字自动换行等解决方法

    let content = res.content // 后台返回的富文本值 content = content.replace(/;\swidth\s:\s*/g, ';max-width:100% ...

  9. 安装黑苹果提示未能安装_黑苹果安装过程中经常出现的问题及解决方法

    一.自身问题 有这么一句话叫''打铁还需自身硬'',小白们该了解的知识还是该了解,不然到时候别人要帮你黑苹果,结果说出来的话,你一句都听不懂. 这个时候别人巴拉巴拉说了一大堆话,然后你回他一句你听不懂 ...

最新文章

  1. Programming Principles and Practice Using C++ Notes1
  2. ORA-00923: FROM keyword not found where expected(单双引号)
  3. Java 高级类(上) —— 抽象类和接口
  4. PostgreSQL Oracle 兼容性之 - rownum
  5. php点击按钮查询,管理界面点击按钮打开查询功能
  6. PHP截取UTF-8字符串,解决半字符问题
  7. 谷歌:明年开始对应用内购买抽取 30% 分成;钉钉创始人无招将离任;Java O2OA V5.2.0 发布|极客头条
  8. 江湖有故人,欢迎来到程序员的江湖
  9. Vue终端取消vue、prettier警告warn
  10. MATLAB模糊控制算法,驾驶员制动意图识别,Fuzzy模糊控制算法,试验案例+模型+模糊控制器
  11. Unity3D视图介绍
  12. 数据库MDF数据文件数据库恢复
  13. 机器学习模型的保存与调用
  14. CentOS cp复制命令覆盖文件不提示 实现直接覆盖
  15. 最全的Windows10强制永久关闭自动更新方法!
  16. 算法 | 八皇后问题
  17. 自己制作一个html网页链接,怎么制作自己的网页链接,学生个人网页制作方法...
  18. JOJ——基于爬虫的在线测评系统(Online Judge)
  19. 如何查看手机计算机历史记录,怎么查看电脑历史操作记录
  20. 关于数字证书,数字签名,CA证书,Https都在这里了

热门文章

  1. 破解仓储难题?看WMS如何解决
  2. VASP INCAR 笔记
  3. 安装Python 出现0x80072f7d错误的解决办法
  4. SOA架构的第三方物流信息系统分析
  5. AIoT在智慧景区中的应用
  6. 如何使用hub.docker.com
  7. JS实现简易ATM机
  8. Praat使用 | 辅助Praat进行标注的工具
  9. 效率源希捷自校准配套专修软件 免费
  10. 韩国官员提议加强对加密货币监管的全球合作