由新的 HTML 文档偏移宽度



我想用javascript创建一个新的html文档。在正文中,我想创建一个div(显示:内联),并在其中创建一个p标签。然后我在p标签(innerHTML)中输入一个字符串(titleTagString)。现在我想知道,这是div 的偏移宽度。铬控制台说 0 ... 失败在哪里? 谢谢!

function titleTagTester(titleTagString) {
//Create new document
newDoc = document.implementation.createHTMLDocument('titleTagTester.html');
//Create var body from document
var body = newDoc.getElementsByTagName('body');

//Create div element with style and add to body of document  
newDoc.body.innerHTML += '<div style="width:600px" display="inline" id="divId"></div>';

//Create p element with style and add to div of body of document  
newDoc.getElementById('divId').innerHTML += '<p style="color:#1a0dab" "font-family:arial" font-size:18px;">' + titleTagString + '</p>';

//getwidth of div
return newDoc.getElementById("divId").offsetWidth;
}

我制作了一个嵌入脚本的HTML文档,以便脚本操作相同的文档DOM:

<!DOCTYPE html>
<html>
<head>
<title>temp</title>
</head>
<body>
<h1>Domething</h1>
</body>
<script type="text/javascript">
function titleTagTester(titleTagString) {
var body = document.getElementsByTagName('body');

//Create div element with style and add to body of document  
document.body.innerHTML += '<div style="width:600px" display="inline" id="divId"></div>';

//Create p element with style and add to div of body of document  
document.getElementById('divId').innerHTML += '<p style="color:#1a0dab" "font-family:arial" font-size:18px;">' + titleTagString + '</p>';

//getwidth of div
return document.getElementById("divId").offsetWidth;
}
console.log(titleTagTester('temp'))
</script>
</html>

对于此 Web 文档,控制台显示600。这不是对您的问题的好答案,因为目的是创建一个新文档并从该文档获得所需的偏移量。但是,您情况下的createHTMLDocument似乎不起作用,而是通过打印newDoc.readyState的值找到的,结果证明是未初始化的,这反过来又导致偏移宽度值为0.更正此问题的一种方法是使用 onload 事件处理程序调用函数,而不是直接在脚本标记中调用函数(例如。<body onload="titleTagTester('tempString')">)。

相关内容

  • 没有找到相关文章

最新更新