[]使用HtmlDivElement取不到实际大小

HtmlDivElement.contextWidth和HtmlDivElement.contextHeight无论如何取值为0
已邀请:

cuixueying

赞同来自:

你加个延迟看下,如果还不行,可以提供下测试代码,我们实测看下,谢谢!

Devilsparta

赞同来自:

加过延迟还是不行。
刚才试了一下,貌似加上<div>就不能计算了,代码如下:
(function()
{
var Stage = Laya.Stage;
var HTMLDivElement = Laya.HTMLDivElement;
var HTMLIframeElement = Laya.HTMLIframeElement;
var Browser = Laya.Browser;
var WebGL = Laya.WebGL;

(function()
{
// 不支持WebGL时自动切换至Canvas
Laya.init(Browser.clientWidth, Browser.clientHeight, WebGL);

Laya.stage.alignV = Stage.ALIGN_MIDDLE;
Laya.stage.alignH = Stage.ALIGN_CENTER;

Laya.stage.scaleMode = "showall";
Laya.stage.bgColor = "#232628";

setup();
})();

function setup()
{
createParagraph(); // 代码创建
showExternalHTML(); // 使用外部定义的html
}

function createParagraph()
{
var p = new HTMLDivElement();
Laya.stage.addChild(p);

p.style.font = "Impact";
p.style.fontSize = 30;

var html = "<div>";
html += "<span color='#e3d26a'>使用</span>";
html += "<span style='color:#FFFFFF;font-weight:bold'>HTMLDivElement</span>";
html += "<span color='#6ad2e3'>创建的</span><br/>";
html += "<span color='#d26ae3'>HTML文本</span>";
html += "</div>";

p.innerHTML = html;
console.log(p.contextHeight)
}

function showExternalHTML()
{
var p = new HTMLIframeElement();
Laya.stage.addChild(p);
p.href = "../../res/html/test.html";
p.y = 200;
}
})();

cuixueying

赞同来自:

是的,加上div就无法获取到宽高值了,建议直接用span标签吧!

Devilsparta

赞同来自:

后期也不打算增加计算大小的支持吗?我现在是要将一个html页面塞进一个Panel中,然后让Panel支持滚动浏览这个Html页面,但是如果不支持大小就无法让Panel进行合适的滚动

cuixueying

赞同来自:

直接这样写就可以了,不需要加div
        html = "<span color='#e3d26a'>使用</span>";
        html += "<span style='color:#FFFFFF;font-weight:bold'>HTMLDivElement</span>";
        html += "<span color='#6ad2e3'>创建的</span><br/>";
        html += "<span color='#d26ae3'>HTML文本</span>";
 

Devilsparta

赞同来自:

我这边用到的例子是在引擎示例中给到的,但是实际应用中我们需要将一些HTML文件塞进一个DIV块中作绝对位置的摆放,

要回复问题请先

商务合作
商务合作