首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新HTML文档的Offsetwidth

新HTML文档的Offsetwidth
EN

Stack Overflow用户
提问于 2016-12-24 00:57:28
回答 1查看 206关注 0票数 0

我想用javascript创建一个新的html文档。我想在正文中创建一个div (display: inline),并在那里创建一个p标记。然后我在p标记(innerHTML)中放入一个字符串(titleTagString)。现在我想知道,div的偏移宽度是多少。chrome控制台显示为0 ...故障在哪里?谢谢!

代码语言:javascript
复制
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;
}

EN

回答 1

Stack Overflow用户

发布于 2016-12-24 01:52:33

我制作了一个HTML文档,其中嵌入了脚本,这样脚本就可以操作相同的文档DOM:

代码语言:javascript
复制
<!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。对于您的问题,这不是一个好的答案,因为其目的是创建一个新文档并从该文档获得所需的偏移量。但是,本例中的偏移量似乎不起作用,它是通过输出newDoc.readyState的值来查找的,结果发现该值未初始化,而这反过来又导致createHTMLDocument的值为0。纠正此问题的一种方法是使用onload事件处理程序调用函数,而不是直接在脚本标记中调用函数(Ex.<body onload="titleTagTester('tempString')">)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41305184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档