html超链接怎么换行,富文本过程中我遇到的问题以及解决方法(超链接换行以及无法接收超链接鼠标事件以及br或者nbsp;标签会崩溃报错的问题)...
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;标签会崩溃报错的问题)...相关推荐
- Storm编译打包过程中遇到的一些问题及解决方法
Storm编译打包过程中遇到的一些问题及解决方法 参考文章: (1)Storm编译打包过程中遇到的一些问题及解决方法 (2)https://www.cnblogs.com/panfeng412/p/s ...
- Ghost过程中出现GHOSTERR.TXT文件的解决方法
强文:Ghost过程中出现GHOSTERR.TXT文件的解决方法 注:这是篇绝强的文章,作者不明,在好几个老论坛都有转载,反应很热烈,给大家共享一下小人物,大博客0Qo-GUu9F+rR :p$gY& ...
- mysql安装过程中failed_mysql安装失败原因和解决方法
作者:CWS_chen 转载自https://blog.csdn.net/ mysql数据库安装不了了!mysql最后一步安装不上!mysql就是安装不上!是不是很头疼,很伤脑筋,现在大家不用着急了, ...
- vim编辑器的基本操作以及编译过程中常见的错误和简单解决方法
1.正常模式:对文本内容只能进行浏览,不可修改.在任何模式下按下Esc键就可返回正常模式 2.编辑模式:可以向文本中添加删除修改内容,直接输入i键即可进入编辑模式 3.退出vim:输入Esc键返回正常 ...
- Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法
一.前言 这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发 ...
- Firefox/Chrome下flash的wmode参数设为opaque或transparent时输入文本框中无法输入中文汉字的解决方法...
这段时间做个项目,要涉及到flash开发.真悲催,之前没有接触过flash开发,于是找个哥们临时教了一下Adobe Flash CS5 的使用方法,感觉还蛮简单,所见即所得,和MFC下的开发有点像,渐 ...
- SQL Server2000安装过程中出现“挂起”操作的解决方法
在Windows中安装SQL Server2000时,常常会遇到这样的情况:在选择安装到本地计算机继续进行下一步操作时,会出现如下的提示信息"以前的某个程序安装已在安装的计算机上创建挂起的文 ...
- 微信小程序富文本图片宽度自适应以及文字自动换行等解决方法
let content = res.content // 后台返回的富文本值 content = content.replace(/;\swidth\s:\s*/g, ';max-width:100% ...
- 安装黑苹果提示未能安装_黑苹果安装过程中经常出现的问题及解决方法
一.自身问题 有这么一句话叫''打铁还需自身硬'',小白们该了解的知识还是该了解,不然到时候别人要帮你黑苹果,结果说出来的话,你一句都听不懂. 这个时候别人巴拉巴拉说了一大堆话,然后你回他一句你听不懂 ...
最新文章
- Programming Principles and Practice Using C++ Notes1
- ORA-00923: FROM keyword not found where expected(单双引号)
- Java 高级类(上) —— 抽象类和接口
- PostgreSQL Oracle 兼容性之 - rownum
- php点击按钮查询,管理界面点击按钮打开查询功能
- PHP截取UTF-8字符串,解决半字符问题
- 谷歌:明年开始对应用内购买抽取 30% 分成;钉钉创始人无招将离任;Java O2OA V5.2.0 发布|极客头条
- 江湖有故人,欢迎来到程序员的江湖
- Vue终端取消vue、prettier警告warn
- MATLAB模糊控制算法,驾驶员制动意图识别,Fuzzy模糊控制算法,试验案例+模型+模糊控制器
- Unity3D视图介绍
- 数据库MDF数据文件数据库恢复
- 机器学习模型的保存与调用
- CentOS cp复制命令覆盖文件不提示 实现直接覆盖
- 最全的Windows10强制永久关闭自动更新方法!
- 算法 | 八皇后问题
- 自己制作一个html网页链接,怎么制作自己的网页链接,学生个人网页制作方法...
- JOJ——基于爬虫的在线测评系统(Online Judge)
- 如何查看手机计算机历史记录,怎么查看电脑历史操作记录
- 关于数字证书,数字签名,CA证书,Https都在这里了