搜索
查看: 1601|回复: 4

[HTML] htmlayout 在节点onAttach 事件中 用createElement 创建的子元素都变成块元素

[复制链接]

42

主题

128

帖子

922

积分

荣誉会员

Rank: 8Rank: 8

积分
922
发表于 2018-3-16 04:01:13 | 显示全部楼层 |阅读模式
本帖最后由 cad 于 2018-3-16 04:08 编辑

发现 htmlayout 在节点onAttach 事件中 用createElement 创建的子元素都变成块元素 ,使用 insertAdjacentHTML 则并无此问题

QQ图片20180316040705.png

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/

io.open()

import web.layout

namespace web.layout.behavior.test{
    onAttach =
function(ltOwner){
        ltOwner.createElement(
"span", "aaa" ).style.border = "1px solid red"   
        ltOwner.createElement(
"span", "bbb" )
    }  
}


var wb = web.layout( winform )
wb.html =
/**
<!doctype html>
<html>
<body>
    <div id="container" style="behavior:test"> </div>
</body>
</html>
**/


io.print( wb.getEle(
"container").innerHTML )

winform.show()
win.loopMessage();


回复

使用道具 举报

186

主题

2542

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-3-16 13:13:48 | 显示全部楼层
这种事只有靠自己想办法,
ltOwner.innerHTML = ltOwner.innerHTML;       
重新解析一下HTML就行了. 他就是个HTML解析器,你得让他有认真解析的机会。

或者不要在 onAttach 里 createElement就行了,
即然 insertAdjacentHTML好用就用insertAdjacentHTML。
回复

使用道具 举报

3

主题

50

帖子

396

积分

培训班

积分
396
发表于 2018-3-16 13:52:20 | 显示全部楼层
通过createElement 创建的节点貌似是会继承父元素的属性。。。所以,你要插入行内元素就别用块元素做容器了。。。
回复

使用道具 举报

42

主题

128

帖子

922

积分

荣誉会员

Rank: 8Rank: 8

积分
922
 楼主| 发表于 2018-3-16 22:27:54 | 显示全部楼层
本帖最后由 cad 于 2018-3-16 22:34 编辑

感谢2位的回复。

总结一下: 节点调用 createElement 或者 insert 后,最后记得手动调用一次 updateHTML() ,否则会解析为块元素。
回复

使用道具 举报

186

主题

2542

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-3-16 22:38:00 | 显示全部楼层
cad 发表于 2018-3-16 22:27
感谢2位的回复。

总结一下: 节点调用 createElement 或者 insert 后,最后记得手动调用一次 updateHTML ...

用updateHTML是不必要的,updateHTML会重新创建节点,尤其是在 onAttach 里会死循环。

ltOwner.innerHTML = ltOwner.innerHTML 就可以,实际上 insertAdjacentHTML更常用。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-9-22 23:07 , Processed in 0.078125 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表