繁体   English   中英

新HTML文档的偏移宽度

[英]Offsetwidth by a new HTML Document

我想用javascript创建一个新的html文档。 我要在正文中创建一个div(显示:内联),然后在其中创建ap标签。 然后我在p标签(innerHTML)中放入一个字符串(titleTagString)。 现在我想知道,这是div的offsetwidth。 chrome控制台说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的值来发现它,该值newDoc.readyState初始化,这又将offsetwidth值设置为0 纠正此问题的一种方法是使用onload事件处理程序调用该函数,而不是直接在脚本标记内调用该函数(例如, <body onload="titleTagTester('tempString')"> )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM